2013-09-21 76 views
3

場景:混帳:合併背後的變化

  • 計算機A和計算機B已分別克隆從GitHub一個Git倉庫。
  • 在計算機A上,我更改存儲庫,提交併推送到Github。
  • 在計算機B上,我對其他無關的文件進行了更改並提交。
  • 在計算機B上,我嘗試推送,但無法執行,因爲我忘記先將我的更改拉回。
  • 在計算機B上,我拉改變,git創建一個「合併分支'master'github.com:user/repo」提交。
  • 在計算機B上,我將更改推送到Github,但在提交歷史記錄中有一個惱人的和不必要的「合併」提交。

如何使用git merge放置合併提交之前沒有把我所有的提交?沒關係,如果這弄亂了未完成提交的SHA。

我需要git rebase的東西嗎?避免「煩人」

回答

3

最簡單的方法合併提交:

git pull --rebase 

這會自動變基在計算機B上的變化,歷史似乎是線性的。欲瞭解更多關於rebase的信息,請看this answer

如果你已經把你的合併提交從計算機B推送到github,那就太晚了:這個合併提交將永遠留在那裏。如果不是,你仍然可以重新綁定。但簡單git pull --rebase以避免將來更容易。

1

如果你想git pull在默認情況下衍合的行爲,你也可以把這個在你的配置:

git config --global branch.autosetuprebase always 

此選項在配置時,你拉的每一個分支將設置重訂行爲。如果您想在設置後進行合併拉動,可以使用選項--no-rebase來完成。

git pull --no-rebase