如何在 Git 中记录前 10 次提交

问题描述 投票:0回答:10

两个问题:

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

我知道 git 使用父级来链接提交,很容易从头到尾记录提交。 喜欢:

git log HEAD~10

但是我需要从头到尾查询,可以吗?

git logging git-log
10个回答
346
投票
git log -10

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

参见手册页:

git help log

Commit Limiting

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

73
投票

简单地用一行格式记录所有内容并尾部输出:

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

42
投票

这是我的方法,

要获得前 10 次提交:

git log -n 10

-n 是数字

补充 要获取下 10 个提交,请跳过前 10 个:

git log --skip=10 -n 10

20
投票

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

git log -10 --oneline

19
投票

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

git log --pretty=oneline -10

18
投票

获取最近 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`

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


5
投票

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

git log  --reverse -1

2
投票

因为...更多细节:p

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

通过(无分支),您可能会询问

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
    不是遍历提交祖先链,而是遍历引用日志条目。q
  • 添加
    |cut -d ' ' -f 2|tr -d ':' > log
    以仅记录引用日志提交索引。

以下将显示当前签出分支的最早祖先。

git log --reverse --pretty=oneline | head -10 | cat -n

1 <sha> summary (oldest)
2 <sha> summary (second)
  • --reverse
    以相反的顺序输出提交。
  • 不能简单地使用
    -n 10
    -10
    ,因为它会损坏
    --reverse
  • cat -n
    添加行号(提交索引?)


2
投票

尝试这种简洁的输出格式:

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

它将打印带有颜色的短线,例如:


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 个提交🤪)

© www.soinside.com 2019 - 2024. All rights reserved.