2014-02-25 45 views
1

我剛剛完成解決了由於從我的項目的遠程存儲庫中拉來的一些衝突。Git合併衝突 - 「提交」VS「重定位 - 繼續」

我知道,一旦衝突已經解決了你,據我所知,2個解決方案:

  • git rebase --continue
  • git commit -m "foobar"

如果有這些情況之間的差異,我只是想知道2操作,在這方面只有,因爲我知道它們的基本形式有根本的不同?

回答

5

編輯#2:

如果你開始這種情況與git pull,預期的解決方案是使用git commit,因爲你正在創造一個新的承諾代表了成功的合併。如果這種情況是由git pull --rebase開始的,那麼您會希望使用我在原始答案中提到的git rebase --continue,因爲這將重複使用相同的提交而不創建任何新的提交。

原來的答覆(其中我以爲這與git pull --rebase開始):

我可以告訴你,推薦的方法是使用git rebase --continue。 (在這裏看到:http://git-scm.com/docs/git-rebase

git commit方法可以工作,但它可能會改變你的提交歷史,如果你不使用-C標誌,這是解析git merge會推薦。我想還值得一提的是,-m標誌將改變日誌消息,而git rebase --continue將重用舊的提交消息而不詢問。

編輯:

進一步的研究證實了我的懷疑,即git commit方法是危險的,可能會留下您的回購不期望的狀態。在這裏看到: http://www.tigraine.at/2011/08/10/dont-commit-when-you-rebase 這裏:Forgot "git rebase --continue" and did "git commit". How to fix?

+0

的問題是,官方的Git用戶指南告訴解決衝突(最後一句)之後提交:http://git-scm.com/book/en/Git-Branching基本分支和合並 – Flawyte

+0

該頁面涉及合併。即使看似相似,重新啓動也是一種不同的操作。 – patrickvacek

+0

拉取取+合併。所以我的問題與合併有關,而不是重新綁定,即使此命令用於結束合併。 – Flawyte