Git Rebasing Branch承诺,当它已经有单独的合并分支提交时?

时间:2016-02-29 05:24:24

标签: git github version-control

通常我的Git工作流程如下:

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

从这里我做了更多改动,并重复上述内容。

当我查看分支的提交历史时,我不仅为我的分支提交消息,而且还通过master提交消息。我希望能够为我的分支重新设定和压缩提交。因此,最后10次提交将是我的分支特定提交,并且没有所有其他提交从合并到我的分支。我不介意Git给我一个从另一个分支合并的提交,这是一个表示从空白合并的提交,但我没有看到。

这是否有共同的解决方案?我还没有找到任何东西。

1 个答案:

答案 0 :(得分: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上执行rebase的过程中,您实际上重写了分支的历史记录。