我有一個'主'分支和幾個主題分支。假設主分支主要用作候選發佈版,並且此分支上沒有開發工作。壓扁合併後重新綁定?
主題分支是幾個並由團隊共享。一些分支機構有不止一個開發人員在爲他們工作。所有主題分支都定期從主分支重新分配。
爲了清理'master'分支中的歷史記錄,我在合併代碼從主題到主分支時做了'git merge --squash'。這工作得很好。
現在 - 當主題分支被重新設置 - 提交重複。在'git merge --squash'成功後,有沒有辦法清除主題分支上的提交?
我有一個'主'分支和幾個主題分支。假設主分支主要用作候選發佈版,並且此分支上沒有開發工作。壓扁合併後重新綁定?
主題分支是幾個並由團隊共享。一些分支機構有不止一個開發人員在爲他們工作。所有主題分支都定期從主分支重新分配。
爲了清理'master'分支中的歷史記錄,我在合併代碼從主題到主分支時做了'git merge --squash'。這工作得很好。
現在 - 當主題分支被重新設置 - 提交重複。在'git merge --squash'成功後,有沒有辦法清除主題分支上的提交?
假設您有以下情形:
A - B - C (master)
\
D - E (topic)
如果合併話題進入主與--squash你會得到類似
A - B - C - F (master)
\
D - E (topic)
其中F包含d和E的所有更改。因爲主題分支已經在master(通過F),所以在master上重新激活主題是沒有意義的。您可以將主題分支移至F,而不是重新綁定。
git checkout master
git branch -f topic F
其中產量:
A - B - C - F (master/topic)
所有你現在需要做的是推動了移動特性分支:
git push -f origin topic
謝謝!這正是我所需要的。 – mustard 2012-04-06 19:12:01
小心使用壓扁 - F可能包含您在主題分支中刪除的文件,請參閱http://stackoverflow.com/a/14343784/281545 – 2013-05-08 18:49:09
我以前做的同樣的事情,馬格努斯只是情侶更多命令:
git checkout master
git merge --squash topic
git commit -m "Add topic feature"
git branch -D topic
git checkout -b topic
git push -f origin topic
它不會在這種情況下工作得很好[已刪除的文件](http://stackoverflow.com/a/14343784/281545)。也許沒有辦法去 - 看到[這裏](http://stackoverflow.com/questions/1464642/git-merge-squash-repeatedly) – 2013-05-08 18:51:45