2010-08-03 89 views
3

這裏是我的情況:Git的合併不同的文件名

我的工作在當地的分公司file1修復bug。我的同事在他自己的本地分支,在重構中合併file1file2。他完成了自己的工作,並重新融入主人並推動。現在file1不再存在於HEAD中。

當我做一個拉,並試圖合併我的file1變回到主,會發生什麼? git是否足夠聰明來解決這個問題,還是我必須手動合併我的更改?

+1

創建一個本地分支來進行合併,以便找出答案。 – bstpierre 2010-08-03 15:58:51

回答

4

首先,您不合並文件,您合併修訂版(或更確切地說是開發線)。

其次,Git使用基於相似性啓發式檢測重命名,所以如果file2file1足夠相似,那麼混帳應該會自動將他的更改合併到file2。如果沒有,你會得到'CONFLICT(修改/刪除)'(我想)你必須手動解決。

+1

我玩弄了一個腳本,在'CONFLICT(刪除/修改)'情況下讓生活更輕鬆。還應該爲'CONFLICT(修改/刪除)'工作。看看:https://gist.github.com/894374 – 2011-03-30 14:37:47

1

這取決於....有沒有一個git mv file1 file2沒有git認識到這是一個重命名?如果確實如此,它可能會認識到這一點......否則它可能會試圖創建一個新的文件1。您可能必須執行一些手動合併干預或合併後補丁。此外,這是git TIAS最糟糕的情況,您在推送前回滾合併。

+2

是否有'git mv'並不重要。 git將它識別爲重命名,否則它不會。 – Cascabel 2010-08-03 16:33:57