2012-06-13 179 views
1

如果另一位開發人員在分支DEVELOPER_A上分支出來,並且在該分支上進行了大量提交,那麼當他完成時,我想將他的工作合併到master上。但我不希望他所有的小提交都顯示在主分支歷史記錄上,只關心最後的提交。 那麼在合併該分支時,有沒有辦法在分支DEVELOPER_A上「擠壓」他的歷史記錄?合併git分支時,如何避免提交日誌分支?

我能得到developer_A分支補丁,並適用於主,但恐怕git會失去軌道的事實,結果從developer_A分支合併,只是認爲這是一些獨立的變化

謝謝 楊

+0

可能的重複項:http://stackoverflow.com/questions/5308816/how-to-use-git-merge-squash,http://stackoverflow.com/questions/9599411/git-merge-no-commit-壁球差。 –

回答

2

你可以用幾種方式做到這一點,但最明顯的是使用壓扁的合併。

git merge --squash <other_branch> 
git commit 

注意,git會預填充合併提交的消息從壓扁提交的日誌消息,但你可以自由地修改或刪除的郵件,以適應自己。

0

大多數時候你想清理歷史,而不是隻是把所有的東西混在一起。該工具是git rebase(非常謹慎地使用,並且從未在發佈的東西上使用,因爲更改歷史會爲下游造成嚴重破壞)。

OTOH,有一個詳細的歷史記錄(微提交)在追蹤bug(看git bisect)是非常有用的。