通常我的Git工作流程如下:
git add --all
git commit
git push -u origin branch/name
git merge master
从这里我做了更多改动,并重复上述内容。
当我查看分支的提交历史时,我不仅为我的分支提交消息,而且还通过master提交消息。我希望能够为我的分支重新设定和压缩提交。因此,最后10次提交将是我的分支特定提交,并且没有所有其他提交从合并到我的分支。我不介意Git给我一个从另一个分支合并的提交,这是一个表示从空白合并的提交,但我没有看到。
这是否有共同的解决方案?我还没有找到任何东西。
答案 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的过程中,您实际上重写了分支的历史记录。