查看Git提交列表的顺序

7

我有一系列提交哈希值,需要按时间顺序排列。

我认为可以使用git rev-list来完成,但即使我在命令行上指定了一个提交,它也坚持显示所有的提交。

是否有办法让git做到这一点,或者我必须结合git rev-listgrep来完成?

谢谢!


阅读此文将为您提供一些想法。 http://thesimplesynthesis.com/post/how-to-sort-git-commits-by-author-date - CodeWizard
1个回答

6
使用--no-walk选项。它适用于基于git rev-list的所有内容。

1
具体来说,现在你可以使用 --no-walk=sorted 或者 --no-walk=unsorted,默认值是 "sorted"。但是在旧版本的 Git 中,--no-walk 总是未排序的,所以要小心!(当我在 Git 1.7 或 1.8 时尝试使用它时,这个问题困扰了我。) - torek
我在信仰的评论中为你点赞了,但是引入选项的8e64006表示“rev-list”基于命令行排序输出(现在默认),而“git show”遵循命令行顺序。你可能记错了吗?@torek - jthill
这是一个相当老的Git版本。我需要在Git中查看历史记录以确定何时修复了此问题。我的脚本有以下四行(注释会将它们折叠起来):`# 将参数解析为一个文件 git rev-parse $@ > $TF1 || exit 1

并将参数拓扑排序到另一个文件中

git rev-list --topo-order --no-walk --reverse $@ > $TF2 || exit 1`,直到某个Git版本更新后才能正常运行。(我最后一次修改此脚本是在2012年,因此该问题发生在2012年或之前。)
- torek
这似乎是Git 1.6版本,或者可能是早期的1.7版本。附注:很可能是提交fbc08ea177f8284d10c62ad39de51edb21af88b0导致了问题(未排序),在1.7.10及更早版本中存在此问题。 - torek

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接