以git登录前10

yoh*_*hou 78 git logging

两个问题:

  1. 如何从头到尾显示git中的前10个提交.(没有分支)
  2. 如何指定提交索引并记录它.(显示第二或第三)

我知道git使用parent链接提交,很容易从头到尾记录提交.喜欢:git log HEAD~10

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

kos*_*tix 211

git log -10
Run Code Online (Sandbox Code Playgroud)

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

请参见手册页:

git help log
Run Code Online (Sandbox Code Playgroud)

部分 Commit Limiting

-<number>, -n <number>, --max-count=<number>
    Limit the number of commits to output.
Run Code Online (Sandbox Code Playgroud)

  • 操作不是他想要的:他想要的是"第一个",而不是"最新的". (7认同)
  • &不会搞乱git格式/着色.这应该是接受的答案x100 (6认同)
  • 简单,并且不依赖于您的平台上的`tail`. (4认同)
  • @Timo,很可能是的,但是所陈述的问题是可以解释的,而且很多人似乎因为这些公开的差异而最终赞成我的答案。因此,虽然我在技术上同意您的观点,但我想还是保持原样吧 ;-) 在技术上正确的建议中,我最喜欢 torek 对已接受答案的评论。 (2认同)

Cha*_*esB 51

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

git log  --pretty=oneline | tail -n 10 
Run Code Online (Sandbox Code Playgroud)

  • `tail`似乎失去了我在我的git控制台中获得的漂亮色彩.像其他答案那样传递像`git log --oneline -10`这样的参数就像我预期的那样工作. (10认同)
  • 这显然是Unix的核心方式,哈哈.请参阅@kostix答案. (4认同)
  • 或者,使用`git rev-list HEAD | tail -n 10`获取要列出的10个ID,然后您可以以您喜欢的任何格式显示(不限于单行方法). (3认同)
  • `git log --pretty=oneline -10` 将显示颜色 (3认同)

Nay*_*gam 17

我的方法,

要获得前10个提交:

git log -n 10
Run Code Online (Sandbox Code Playgroud)

-n是数字

其他 取得下一个10提交跳过第一个10:

git log --skip=10 -n 10
Run Code Online (Sandbox Code Playgroud)


tor*_*rek 13

要获得最近10次提交:

git log HEAD~10..HEAD
Run Code Online (Sandbox Code Playgroud)

为了获得最旧到最新的顺序:

git log --reverse HEAD~10..HEAD
Run Code Online (Sandbox Code Playgroud)

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

有关更多详细信息,请参阅文档git rev-list.


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

git log --no-walk `git rev-list HEAD | tail -n 10`
Run Code Online (Sandbox Code Playgroud)

和:

git log --no-walk `git rev-list --reverse HEAD | head -n 10`
Run Code Online (Sandbox Code Playgroud)

取决于您想要的结果顺序.


and*_*rej 13

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

git log --pretty=oneline -10
Run Code Online (Sandbox Code Playgroud)


小智 11

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

git log -10 --oneline
Run Code Online (Sandbox Code Playgroud)

  • 嗯,但这会打印 10 个最后的**而非**第一次提交。 (2认同)

nic*_*fly 5

简单地记录所有内容 反向 -1 表示列出一个日志

git log  --reverse -1
Run Code Online (Sandbox Code Playgroud)