2

2 つの既知のコミット間のコミット ID のリストを取得する必要があります。次のコマンドを使用しました。

git show --format=format:%H --quiet commitA...commitB

マージコミットがあるまで問題なく動作します。すなわち:

*   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 showoverを使用することに熱狂的git logではありません。このアイデアをどこから得たのか覚えていません。しかし、この余分な空行が原因でプログラムが失敗し、何か特別な意味があるのだろうかと思います。

Git バージョン 1.9.5。

4

2 に答える 2

3

マニュアルページには、その空白行がある理由を説明するものは何もありません。ただし、出力を別のプログラムに渡す場合は、出力形式が変更される可能性があるため、とにかく磁器コマンドは必要ありません。欲しいコマンドは

git rev-list c36a37b...eef755e

更新:あなたの特定の質問に対して-それは何か意味がありますか- (a)マニュアルページに記載されておらず、(b)出力が意図されていないため、私の答えはあなたが信頼できるgit showものではありません他のプログラムによって解析されます。

于 2015-04-02T15:41:49.307 に答える