【发布时间】:2013-05-25 11:34:19
【问题描述】:
我正在使用 git flow 方式来管理我的仓库中的分支,如下所述: http://nvie.com/posts/a-successful-git-branching-model/
因此我应该使用的命令顺序如下:
git checkout mybranch
git pull --rebase origin develop
git checkout develop
git merge --no-ff mybranch
但是,在某些情况下,我想做不同的一件事:
我想保留我的功能分支 (mybranch) 上的所有提交,但在合并到 develop 时将它们集中在一起(或压缩)成一个差异。
所以这就是我认为的命令序列应该是:
git checkout mybranch
git pull --rebase origin develop
git checkout develop
git merge --no-ff --squash mybranch
如果我将--no-ff 与--squash 结合起来,我会做错吗?
由于“压缩”和“保留历史”是正交的要求,我很犹豫是否要尝试这一点 - 请参阅 Squashing all of my commits (including merges) into one commit without altering history
我的理由是我想在一个分支 (mybranch) 上保留历史记录,并在另一个分支 (develop) 上保留 suqash --> 因为这些操作是在单独的分支中执行的,所以可以。
【问题讨论】:
-
你为什么不试试看。如果它不起作用,您可以随时努力
reset。就在老地方做一个临时分支。继续。试试吧。你知道你想...
标签: git merge branch squash fast-forward