获取git中的分支提交数量

时间:2011-05-31 13:54:05

标签: git version-control

假设我从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中了,所以我想知道是否有办法在创建分支后获取提交数量?

2 个答案:

答案 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可以显示其中的一些内容。