web-dev-qa-db-ja.com

gitの最初の10を記録する

2つの質問:

  1. 最初から最後までgitの最初の10個のコミットを表示する方法。 (ブランチなし)
  2. コミットインデックスを指定して記録する方法。 (2番目または3番目を表示)

Gitは親を使用してコミットをリンクすることを知っています。コミットを最初から最後まで簡単に記録できます。など:git log HEAD~10

しかし、最初から最後までクエリする必要がありますか?

71
yohan zhou

すべてを1行の形式でログに記録し、出力を末尾にします。

git log  --pretty=oneline | tail -n 10 
50
CharlesB
git log -10

リビジョン仕様に一致する最新のコミットを10件表示します(仕様がない場合は「すべてのコミット」を意味します)。

マンページを参照してください:

git help log

セクション - Commit Limiting

-<number>, -n <number>, --max-count=<number>
    Limit the number of commits to output.
197
kostix

ここで私のアプローチ、

最初の10件のコミットを取得するには:

git log -n 10

-nは数値

追加次の10のコミットを取得するには、最初の10をスキップします。

git log --skip=10 -n 10
15
Nayagam

過去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`

結果を取得する順序に応じて。

13
torek

単にすべてを逆順にログに記録する-1は、1つのログをリストすることを意味します

git log  --reverse -1
4
nickleefly

最良の結果は、両方のベストアンサーの組み合わせで得られます。

git log --pretty=oneline -10
2
andrej

なぜなら...詳細:p

  1. 最初から最後までgitの最初の10個のコミットを表示する方法。 (ブランチなし)
  2. コミットインデックスを指定して記録する方法。 (2番目または3番目を表示)

(分岐なし)では、特定の祖先チェーンではなく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は行番号を追加します(インデックスをコミットしますか?)

0
here

誰かがgitの1行のログ以上のものを必要としている場合:

git log --reverse | awk 'NR>1 {print last} {last=$0}; /^commit/ && ++c==11{exit}'

末尾の11は、必要なコミットの数よりも1に設定する必要があります。

here が指摘するように、git log --reverse -n 10は必要に応じて機能しません。 (逆順で最初の10個のコミットまたは最後の10個のコミットを選択する機能を提供するには、非可換である必要があると思います?? ??)

0
Cameron Stone