2016-02-29 58 views
0

通常我的Git工作流程如下所示:Git Rebasing Branch Commits,当它已经分开合并分支提交它?

git add --all 
git commit 
git push -u origin branch/name 
git merge master 

在这里,我做更多的变化,并重复上述。

当我在看我的提交历史的分支,我不仅对我的分支,而且从通过主体合并提交信息。我希望能够为我的分支进行重组和压缩提交。所以最后的10个提交将是我的分支特定的提交,并且没有从合并到我的分支的所有其他提交。我不介意Git是否向我提交了来自另一个分支的合并提交,这是另一个提交,表示合并为空白,但我没有看到。

是否有一个常见的解决方案?我一直无法找到任何东西。

回答

1

你似乎在标题中回答了你自己的问题,但避免出现合并提交的一种方法是rebase你的本地分支在远程master上。您的工作流程改成这样:

git add --all 
git commit -m 'Now I'm rebasing...woohoo' 
git rebase origin/master 

# resolve merge conflicts, which may occur at the replay of each commit 

git push --force -u branch/name 

评论:

命令git rebase origin/master将重订当地的分支机构(涉及master它可以是任何东西)上的远程master。由于您本地分支中的每个提交都会重播,因此您可能会遇到合并冲突。解决冲突后,您可以通过输入git rebase --continue继续重新绑定。

命令git push --force -u branch/name覆盖远程存在的本地分支的版本。这是因为需要,在做底垫上master的过程中,你居然改写您的分支的历史。