2011-09-07 404 views
2

我犯了我的代碼,當我做了git pull我發現了一些衝突。我如何解決衝突,並且只有在沒有我所承諾的更改的情況下才能使文件版本不受影響?刪除git中的文件衝突

+0

可能重複的[如何解決git pull之後的衝突?](http://stackoverflow.com/questions/1435754/how-do-i-resolve-a-conflict-after-git-pull) – CharlesB

回答

2

您可以在更改之前將分支重置爲提交,然後櫻桃挑選後續的每個提交。這將使您的分支進入包含除您的更改外的所有內容的狀態。

+0

但這個鏈接表示硬復位在你提交之前:http://book.git-scm.com/4_undoing_in_git_-_reset,_checkout_and_revert.html – Firdous

+1

硬復位總是會強制你的當前分支被設置爲任何分支/標籤你指定。你可以隨時做。危險在於它會拋棄未提交的更改,或者創建一個不再提及的懸掛分支。爲了讓自己在這些情況下保存,您可以在硬重置之前始終創建一個新分支,因爲在Git中創建分支非常便宜。然後,如果出現任何問題,您可以將其重置爲您創建的臨時分支,然後返回到原來的位置(並且您可以再試一次!) – Kevek

+0

好吧,我做到了,是的它有效(衝突解決),當我做「混帳狀態」沒有修改文件(完美)。現在我怎麼拉? B/C如果我拉它顯示衝突錯誤。我無法理解,當我沒有修改文件,那麼衝突是如何發生的?即時通訊新的git,因爲你可以看到:) – Firdous

5

你可以做

git reset --hard HEAD^ 

git pull 

的更改Unstage一切,做一個快進合併。沒有必要再解決衝突了。

+0

但這個鏈接說,硬復位是在你犯下之前:http://book.git-scm.com/4_undoing_in_git_-_reset,_checkout_and_revert.html – Firdous

+0

直到我不解決我的衝突我不能做「git恢復HEAD」 – Firdous

+0

@Firdous :那麼你應該重置 - hard HEAD ^而不是HEAD。這會在提交之前重置你的階段。人民幣,您所做的所有更改都將丟失! –