這裏是我的情況:Git的合併不同的文件名
我的工作在當地的分公司file1
修復bug。我的同事在他自己的本地分支,在重構中合併file1
到file2
。他完成了自己的工作,並重新融入主人並推動。現在file1
不再存在於HEAD中。
當我做一個拉,並試圖合併我的file1
變回到主,會發生什麼? git是否足夠聰明來解決這個問題,還是我必須手動合併我的更改?
這裏是我的情況:Git的合併不同的文件名
我的工作在當地的分公司file1
修復bug。我的同事在他自己的本地分支,在重構中合併file1
到file2
。他完成了自己的工作,並重新融入主人並推動。現在file1
不再存在於HEAD中。
當我做一個拉,並試圖合併我的file1
變回到主,會發生什麼? git是否足夠聰明來解決這個問題,還是我必須手動合併我的更改?
首先,您不合並文件,您合併修訂版(或更確切地說是開發線)。
其次,Git使用基於相似性啓發式檢測重命名,所以如果file2
是file1
足夠相似,那麼混帳應該會自動將他的更改合併到file2
。如果沒有,你會得到'CONFLICT(修改/刪除)'(我想)你必須手動解決。
我玩弄了一個腳本,在'CONFLICT(刪除/修改)'情況下讓生活更輕鬆。還應該爲'CONFLICT(修改/刪除)'工作。看看:https://gist.github.com/894374 – 2011-03-30 14:37:47
這取決於....有沒有一個git mv file1 file2
沒有git認識到這是一個重命名?如果確實如此,它可能會認識到這一點......否則它可能會試圖創建一個新的文件1。您可能必須執行一些手動合併干預或合併後補丁。此外,這是git TIAS最糟糕的情況,您在推送前回滾合併。
是否有'git mv'並不重要。 git將它識別爲重命名,否則它不會。 – Cascabel 2010-08-03 16:33:57
創建一個本地分支來進行合併,以便找出答案。 – bstpierre 2010-08-03 15:58:51