我经常需要squash
许多小提交进入一个大提交,从开发功能分支合并到master
。所以我做了
git rebase -i HEAD~X
其中X是最近提交的提交次数。但是,由于我有时会处理几十次提交,我必须在git log
中手动计算它们,我试图避免这种情况。
有没有办法生成一个类似git log的报告,除了显示提交SHA之外,还会枚举它们0-n?
答案 0 :(得分:1)
你可以做到
git rebase -i <sha>
(其中<sha>
是最后一次要重新提交的提交的父级)
或
git rebase -i <sha>~
(其中<sha>
是最后一次重新提交的提交。)
回到原来的问题,我认为没有办法做到这一点。因为SHA是git世界中的一等公民,并且^
和~
语法完全用于返回少量已知的提交。当您不知道要提前返回的步骤数时,使用此语法没有任何意义。因此,我不认为git log
有任何枚举提交的方法,因为我无法想到它的任何用例;一个人总是可以使用SHA。
那说,当然没有人可以阻止你做git log --pretty=oneline
并使用任何外部工具(感谢Unix)对行进行编号,例如awk
,nl
或您喜欢的任何内容。
答案 1 :(得分:-1)
尝试:
$ git log --pretty=format:"%h" @{3}..| nl -v0
0 da15a22
1 64e0e39
2 33fa834
并将3
替换为自HEAD
以来所需的提交次数。