2017-08-07 41 views
0

我想將一個分支合併到主。我建立的分支名爲auths_images的分支有我想在master中覆蓋的更改。當我合併,我得到錯誤的整個sleu基本上是告訴我...Git合併和變化,安全的方式來處理

CONFLICT (add/add): Merge conflict in file 
Automatic merge failed; fix conflicts and then commit the result. 

我知道auth_images是最新與master,並有改變,將與master工作。我如何使合併工作以便使用分支中的更改?

回答

1

添加/添加衝突意味着既然您的基地,您當前的(HEAD)提交當前分支和其他分支的提示添加了一個具有相同名稱的文件。 Git不知道如何處理這個問題。您必須將正確的組合文件放入工作樹,然後在該路徑名上運行git add

如果兩個文件都是完全一樣,Git就不會有問題。 Git會對自己說:Gosh,文件somenewfile在分支auth_images中是全新的,並且在master中也是全新的。但看看,這是相同現在在這兩個分支提示!我可以只使用其中一個,一切都會好的!所以這兩個文件必須有所不同。 Git不知道要使用哪個文件:來自auth_images的提示中的一個,還是來自master的提示的不同的文件?或者,也許正確的事情是結合每個部分!

如果你肯定知道這兩個文件中只有一個是正確的,只是提取一個從現在承諾:

git checkout master -- somenewfile 

或:

git checkout auth_images -- somenewfile 

請記住,這兩個根據定義不同:如果他們是一樣的,Git不會抱怨。所以一定要找到合適的。

從右分支提示中檢出正確分支的行爲將解析此特定文件。對於其中每個其他add/add衝突重複,其中來自兩個分支提示之一的某個特定文件是正確的。假設這是唯一的問題,你現在git status會說所有的問題都得到解決和合並準備提交,您現在可以運行:

git commit 

完成合並。

+0

謝謝。我在合併之後清理了文件,添加了它們,承諾並推送。 – Jaberwocky