【发布时间】:2013-07-11 17:32:55
【问题描述】:
我正在使用 git rev-list 以两种不同的方式从 repo 中获取提交的选择:
git rev-list --reverse HEAD~<n>..
和 git rev-list --reverse ..
阅读了 git rev-list 手册页后,我知道 .. 相当于 ^,并且这不会包含在所选提交范围内,但是手册页没有指定如果我想要一个该怎么做包含的提交范围(即包括)
我有同样的问题: git rev-list --reverse HEAD~..
这是我想要的规范:
假设我有四个提交:
A--B--C--D
我有一个脚本,我给出了两个提交:
myscript --from B --to D
我想要一个大小为 3 的提交列表:
B, C, D
或者如果我这样做了:
myscript --last 4
我会得到:
A, B, C, D
我建议的解决方案是:
git rev-list --reverse <tag1>~1..<tag2>
或 git rev-list --reverse HEAD~..
但是,如果 n == 提交次数,或者 tag1 是第一次提交,这将不起作用。
任何帮助将不胜感激。
【问题讨论】:
-
所以对于 --last N 选项,我发现下面的工作非常好: git rev-list --reverse HEAD -n
标签: git version-control