我有一个'主'分支和几个主题分支。假设主分支主要用作候选发布版,并且此分支上没有开发工作。压扁合并后重新绑定?
主题分支是几个并由团队共享。一些分支机构有不止一个开发人员在为他们工作。所有主题分支都定期从主分支重新分配。
为了清理'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