我需要获取两个已知提交之间的提交 ID 列表。我使用了以下命令:
git show --format=format:%H --quiet commitA...commitB
在 merge 提交之前它可以完美地工作。即:
* c36a37b
|\
| * 92187d9
* | e24d2c4
|/
* eef755e
输出如下:
$ git show --format=format:%H --quiet c36a37b...eef755e
c36a37b80caf2bae7b4833617443f4dfea8d8816
e24d2c4292baef4106976373ff3d01341834648d
92187d9a1002027c7d99824f2561467692bfd6b3
当我更改 show
命令并使用 log
时:
$ git log --format=format:%H --quiet c36a37b...eef755e
c36a37b80caf2bae7b4833617443f4dfea8d8816
e24d2c4292baef4106976373ff3d01341834648d
92187d9a1002027c7d99824f2561467692bfd6b3
请注意,第一次提交后没有空行。我并不热衷于使用 git show 而不是 git log - 我什至不记得我从哪里得到这个想法。但是这个多余的空行导致了我的程序失败,我想知道它是否有什么特殊含义。
Git 版本 1.9.5。
最佳答案
我在手册页中没有看到任何内容解释为什么存在该空白行。但是,如果您将输出传递给另一个程序,您无论如何都不需要瓷器命令,因为输出格式可能会发生变化。你想要的命令是
git rev-list c36a37b...eef755e
更新:针对您的具体问题 - 它有任何意义吗 - 我的答案是没有一个您可以指望的,因为 (a) 它不是手册页中提到,并且 (b) git show 的输出不打算由其他程序解析。
关于git - git show 和 git log 显示提交 ID 时的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29416378/