[英]How to checkout files from another branch and then overwrite the current branch
基於http://jasonrudolph.com/blog/2009/02/25/git-tip-how-to-merge-specific-files-from-another-branch/ ,我們可以使用以下命令合並來自另一個的更改分支到當地分公司。
例如:
$git checkout master -- hello.c
此命令將hello.c從master分支合並到當前本地分支。
問題>如果我想使用master中的hello.c來覆蓋我的本地分支文件而不進行任何合並,該怎么辦? 我應該使用哪個選項?
謝謝
- 更新 -
$ pwd
/sandbox/projectOne
$ git branch
feature/F_Source
* feature/F_Dest
master
$ git status -s
$
$ git diff feature/F_Source feature/F_Dest -- Messages/src/Hello.C | wc -l
165
$ git checkout feature/F_Source -- Messages/src/Hello.C
$
$ git diff feature/F_Source feature/F_Dest -- Messages/src/Hello.C | wc -l
165
$ git status -s
M Messages/src/Hello.C
$
如您所見,在結賬之前,F_Source Hello.C和F_Dest Hello.C之間存在差異。 結賬后,仍然存在差異。 所以我假設結賬不是覆蓋操作,否則我們不應該看到任何差異。
請注意您發布的鏈接中的引用:
您需要抓取的代碼與少數文件隔離,並且主分支中尚不存在這些文件。
所以他稱之為“合並”並不是真正的合並; 它只是復制文件,不需要合並。 當你調用git checkout master -- hello.c
,確實用 master
任何東西覆蓋你的本地hello.c
副本; 它沒有合並任何東西。
問題>如果我想使用master中的hello.c來覆蓋我的本地分支文件而不進行任何合並,該怎么辦?
我應該使用哪個選項?
正如您已經發現的那樣,這是做到這一點的方式(到目前為止您做了什么)
git checkout <branch_name> -- <file path>
# On branch master - checkout different branch
git checkout <branch2>
# now checkout the desired file form different branch (master in this case)
git checkout master -- hello.c
由於您正在檢查來自不同分支的文件,因此將進行合並。 如果你不想合並,只需抓取你需要的文件的內容,並覆蓋當前文件,這樣內容將是新的,這將是一個簡單的改變。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.