以git登录前10

时间:2012-04-27 05:25:49

标签: git logging

两个问题:

  1. 如何从头到尾显示git中的前10个提交。 (没有分支)
  2. 如何指定提交索引并记录它。 (显示第二或第三)
  3. 我知道git使用parent链接提交,很容易从头到尾记录提交。 喜欢:git log HEAD~10

    但我需要从头到尾查询,有可能吗?

10 个答案:

答案 0 :(得分:185)

git log -10

将显示与修订版规范匹配的10个最新提交(缺少的规范意味着“所有提交”)。

请参阅联系手册:

git help log

部分 Commit Limiting

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

答案 1 :(得分:46)

只需使用一种行格式记录所有内容并拖尾输出:

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

答案 2 :(得分:15)

这是我的方法,

获得前10个提交:

git log -n 10

-n是数字

其他 要获得下一个10提交,请先跳过10:

git log --skip=10 -n 10

答案 3 :(得分:11)

获取最近10次提交:

git log HEAD~10..HEAD

以最旧到最新的顺序获取它们:

git log --reverse HEAD~10..HEAD

请注意,如果有合并,则可能会显示超过10个提交;如果您只想遍历每个分支的第一个父级,请添加--first-parent

有关详细信息,请参阅git rev-list的文档。


编辑:您已经获得了一个有用的答案“显示历史开始附近的提交”(再次,请参阅有关回购中多个未连接的提交DAG的警告)。但你也可以这样做,例如:

git log --no-walk `git rev-list HEAD | tail -n 10`

git log --no-walk `git rev-list --reverse HEAD | head -n 10`

取决于您希望结果的顺序。

答案 4 :(得分:5)

我将使用以下简单的语法命令;

git log -10 --oneline

答案 5 :(得分:4)

简单地记录所有反向-1意味着列出一个日志

git log  --reverse -1

答案 6 :(得分:1)

最好的结果来自两个最佳答案的组合:

git log --pretty=oneline -10

答案 7 :(得分:0)

因为......更多细节:p

  1. 如何从头到尾显示git中的前10个提交。 (没有 分支)
  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添加行号(提交索引?)

答案 8 :(得分:0)

如果有人想要的不仅仅是git单行日志:

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

其中末尾的11应该设置为比您想要的提交数多1的位置。

here指出git log --reverse -n 10不能按您需要的方式工作。 (我想它应该是非可交换的,以便您能够以相反的顺序选择前10个提交或后10个提交?)

答案 9 :(得分:0)

试试这个简洁的输出格式:

git log --date=short -10 --pretty="%C(Yellow)%h %x09 %C(reset)%ad %x09 %C(Cyan)%an: %C(reset)%s"

它将打印带有颜色的短线,例如: enter image description here