假设我从master创建一个名为foo的分支,在处理它时,我执行了很多本地提交。我现在已经完成了分支,想要将它合并回主服务器,但是我不想将所有提交压缩到一个提交时合并回来,我知道可以完成:
#from master branch
git merge --squash foo
我希望能够压缩一些提交,以便只有重要的提交被推送到原始存储库。现在,如果我知道自创建分支以来我提交的提交数量,这很容易。我所要做的就是:
#assuming I did 20 commits
#while in the foo branch
git rebase -i HEAD~20
然后我可以压制我想要的提交。问题是我一般不跟踪我承诺分支的次数,所以如果我不知道这个数字(大多数情况下我不会),我不知道该怎么做。一般来说,我只需要在分支完成后进行压缩,然后我就可以将其合并回master中了,所以我想知道是否有办法在创建分支后获取提交数量?
答案 0 :(得分:2)
我只是
git rebase -i origin/master
或者你从中分支的任何内容,因此生成的历史记录将显示我从更高版本开始,并且合并将可能是快进的(它更容易使用,特别是因为您无论如何都要将实际历史重写为逻辑更改集) 。但是如果你想保持相同的基点,你可以做到
git rebase -i $(git merge-base HEAD origin/master)
(或者你从中再次分支的任何东西)。
答案 1 :(得分:0)
正如Jan所说git rebase -i master
可能就是你所需要的。从这里,您可以压缩选定的提交,重新排序,更改提交消息或只是忽略单个提交
有一个方便的GitCast screencast可以显示其中的一些内容。