是否有可能枚举git日志中的提交?

时间:2015-04-02 21:50:26

标签: git git-log

我经常需要squash许多小提交进入一个大提交,从开发功能分支合并到master。所以我做了

git rebase -i HEAD~X

其中X是最近提交的提交次数。但是,由于我有时会处理几十次提交,我必须在git log中手动计算它们,我试图避免这种情况。

有没有办法生成一个类似git log的报告,除了显示提交SHA之外,还会枚举它们0-n?

2 个答案:

答案 0 :(得分:1)

你可以做到

git rebase -i <sha>

(其中<sha>是最后一次要重新提交的提交的父级)

git rebase -i <sha>~

(其中<sha>是最后一次重新提交的提交。)


回到原来的问题,我认为没有办法做到这一点。因为SHA是git世界中的一等公民,并且^~语法完全用于返回少量已知的提交。当您不知道要提前返回的步骤数时,使用此语法没有任何意义。因此,我不认为git log有任何枚举提交的方法,因为我无法想到它的任何用例;一个人总是可以使用SHA。

那说,当然没有人可以阻止你做git log --pretty=oneline并使用任何外部工具(感谢Unix)对行进行编号,例如awknl或您喜欢的任何内容。

答案 1 :(得分:-1)

尝试:

$ git log --pretty=format:"%h" @{3}..| nl -v0
 0  da15a22
 1  64e0e39
 2  33fa834

并将3替换为自HEAD以来所需的提交次数。