すべての行が最新のコミットに起因する場合、それはすべての行が実際に最新のコミットで変更されたことを意味します。
通常、この種のことは、誰かがすべての行末を 1 つの改行から CR/LF のペアに、またはその逆に変更したときに発生します。
ああ、上記は がなく ても当てはまりますが、 for が意味する-S
ことは、グラフトをコミット グラフに挿入することです。-S
git blame
これは (コメントによると) cvsserver で動作することを意図した特別な機能ですが、使用している方法では動作しません。
フォーマットは単なる一連の<commit-ID> <parent-ID> ...\n
行です。git blame
この場合、 で開始しHEAD
て で停止したいので、次のようHEAD~50
にできます。
git rev-parse HEAD~50 | git blame -S /dev/stdin $file
commitのgit rev-parse
SHA-1 をHEAD~50
追加行なしで出力します。これにより、そのコミットには親コミットがなくなりgit blame
、その時点で履歴トラバーサルが停止します。
-S
(入力をフィードするために使用したコマンド は、 から、またはから到達可能なすべてgit rev-list HEAD~50 HEAD
のコミットを、親を省略した単一のコミット ID としてリストします。これは と同じです。これは、自体が から到達可能であるためです。これは、親のないすべてのコミットをリストするためです。 ID, これにより、各コミットがルート コミットとして扱われるようになりました. 次に、コミットから開始し、その親を見つけようとし、ルート コミットと見なされ、そこで停止しました。コミット ID をリストすることで、そこで停止する必要があります。そのため、代わりに をリストする必要があります。)HEAD~50
HEAD
git rev-list HEAD
HEAD~50
HEAD
git blame
HEAD
HEAD
HEAD
git blame
HEAD~50