2つの質問:
- 最初から最後までgitの最初の10コミットを表示する方法。(ブランチなし)
- コミットインデックスを指定してログに記録する方法。(2番目または3番目を表示)
私はgitが親を使用してコミットをリンクしていることを知っています。コミットを最初から最後まで簡単に記録できます。お気に入り:git log HEAD~10
しかし、最初から最後までクエリする必要がありますが、可能ですか?
回答:
すべてを1行の形式でログに記録し、出力をテールします。
git log --pretty=oneline | tail -n 10
git rev-list HEAD | tail -n 10
してリストする10個のIDを取得し、任意の形式で表示できます(1行の方法に限定されません)。
tail
私のgitコンソールで取得した素敵な色が失われているようです。git log --oneline -10
他の答えのようにパラメーターを渡すと、期待どおりに機能します。
git log -10
リビジョン仕様に一致する最新のコミットが10件表示されます(仕様がない場合は「すべてのコミット」を意味します)。
マンページを参照してください:
git help log
セクション Commit Limiting
-<number>, -n <number>, --max-count=<number>
Limit the number of commits to output.
tail
プラットフォームで利用できるかどうかに依存しません。
first
10、ではありませんlatest
。
ここに私のアプローチ、
最初の10件のコミットを取得するには:
git log -n 10
-nは数値です
追加 次の10のコミットを取得するには、最初の10をスキップします。
git log --skip=10 -n 10
最後の10件のコミットを取得するには:
git log HEAD~10..HEAD
それらを古いものから新しいものに取得するには:
git log --reverse HEAD~10..HEAD
マージがある場合は、10を超えるコミットが表示される場合があることに注意してください。--first-parent
各ブランチの最初の親をトラバースするだけの場合に追加します。
詳細については、のドキュメントを参照してくださいgit rev-list
。
git log --no-walk `git rev-list HEAD | tail -n 10`
そして:
git log --no-walk `git rev-list --reverse HEAD | head -n 10`
結果が必要な順序に応じて。
最良の結果は、両方の最良の回答の組み合わせで得られます。
git log --pretty=oneline -10
lkj = log --pretty=oneline --abbrev-commit -10
。OPの質問には答えられないことに気づきましたが、単純な数値スイッチを探してここに来ました。
なぜなら...詳細:p
(ブランチなし)で、reflog
特定の祖先チェーンではなく、について尋ねる場合があります。次はあなたがいるブランチとは何の関係もありません。
git log -g --pretty=oneline | tail -10
<sha> HEAD@{###}: action: summary (old)
<sha> HEAD@{###}: action: summary (older)
...
<sha> HEAD@{###}: action: summary (oldest)
-g
ある--walk-reflogs
代わりに、祖先チェーンをコミット歩行、REFLOG entries.qを歩きます|cut -d ' ' -f 2|tr -d ':' > log
は、reflogコミットインデックスのみをログに記録します。次に、現在チェックアウトされているブランチの最も古い祖先を示します。
git log --reverse --pretty=oneline | head -10 | cat -n
1 <sha> summary (oldest)
2 <sha> summary (second)
--reverse
コミットを逆の順序で出力します。-n 10
または-10
壊れて使えない--reverse
cat -n
行番号を追加します(インデックスをコミットしますか?)