我想知道在git中是否有可能实现这一点。我有一个主分支,时不时会为功能开发创建一个侧分支。当完成后,我会将其合并回到主分支。现在通常情况下,侧分支上的所有提交历史记录都会显示在主分支上。是否有办法使主分支上所有提交记录都显示为一个呢?
$ git checkout master
$ git merge --squash <branch>
git checkout -b dev_branch
< do your changes, and commit them >
git rebase -i master
< in the interface you should now keep the first commit, and select `squash` for all the successive commits >
现在您想将您的主分支(master branch) 变基(rebase) 到您的侧分支(side branch),并删除该分支:
git checkout master
git rebase dev_branch
git branch -d dev_branch
git rebase
,但我不确定这是否是 OP 想要的。我认为合并会留下一个提交和一个注释,但也许我在这里漏掉了什么。 - Tim Biegeleisengit rebase
赢了 :). 的确,git merge
会添加一个提交。但是 OP 说他想让“所有提交在主分支上显示为一个”。 - Chris Maesgit merge --squash
的结果与运行单个命令完全相同。此外,您可以保留 dev_branch
的原始历史记录。 - Antonio Pérezdev_branch
中的多个提交,如果他愿意的话。 - Chris Maes