2011-07-20 38 views
1

我遇到了合併衝突,我通常可以重命名該文件並從回購解決或手動編輯編輯。這一次,我對發生衝突的文件進行了更改,它位於暫存區域中。 我嘗試使用git reset HEAD <file>,然後再次使用git pull,但我仍然遇到合併衝突。 有沒有辦法強制覆蓋麻煩的文件?如何在git中強制拉一個文件?

這是我得到的消息: 錯誤:你的本地修改下列文件會被合併覆蓋: DB/profile_edit.php

我改變profile_edit.phpbkup文件的名稱。 然後我做了一個git pull 而我仍然得到同樣的錯誤。爲什麼是這樣?該文件不再存在,那麼它如何被替換?

謝謝。

如果你想扔掉你同時進行的所有更改上游
+0

你不想保留你所做的改變嗎?或者你想將兩者合併在一起? – Andy

+0

如何打開兩個文件之間的差異?當然,我想這樣做。 – egidra

+0

@egidra:你拉,讓它得到衝突,並解決它們。查看git-merge的手冊頁,特別是「[如何顯示衝突](http://www.kernel.org/pub/software/scm/git/docs/git-merge.html#_how_conflicts_are_presented)」和「[如何解決衝突](http://www.kernel.org/pub/software/scm/git/docs/git-merge.html#_how_to_resolve_conflicts)「部分。 – Cascabel

回答

0

git fetch origin 
git merge -s recursive -Xtheirs origin/branchA 

希望這有助於:

git fetch origin 
git push -f . origin/branchA:branchA 
如果你想解決衝突有利於上游,而不是

+0

如果我不使用分支機構,我該怎麼辦?我們都是原產地。 – egidra

+0

我不建議工作無頭。如果你在推拉,你正在使用分支機構。你/可以/使用標籤,但這不是正確使用git的方式。 –

0

您可以從git reset filename以外的索引中獲取文件,如果您不想要這些更改,請將--hard切換添加到重置。

衝突本身需要解決。

一個選項是git fetch remoteRepo 這將獲取遠程回購,但不嘗試併合並分支在一起。

把分差你有興趣在該文件的兩個版本,使用git diff HEAD remoteRepo/remoteBranch <fileName>

如果有合併衝突,你要保持內容來自這兩個文件,有什麼可以做,但解決衝突。

+0

我仍然得到這個錯誤:錯誤:您的本地對以下文件的更改將被merge:edit.php覆蓋。我做了重置,然後我重命名了文件edit.phpbkup,當我做一個「git pull」時,我仍然得到錯誤。 – egidra

+0

嘗試在合併之前使用'git stash' – Andy