我最近将一个分支进行了rebase并合并到主分支。当我执行 git log 命令时,我会获得一个漂亮的线性提交历史记录。但是我想按时间戳查看我的提交历史记录,以便可以实时比较两个分支上的提交时间。
是否有一个 git log 选项可以按时间戳排序而不是它们的正常提交历史记录?我似乎找不到这样的选项。谢谢!
我最近将一个分支进行了rebase并合并到主分支。当我执行 git log 命令时,我会获得一个漂亮的线性提交历史记录。但是我想按时间戳查看我的提交历史记录,以便可以实时比较两个分支上的提交时间。
是否有一个 git log 选项可以按时间戳排序而不是它们的正常提交历史记录?我似乎找不到这样的选项。谢谢!
我当时很确定只使用git命令是可以实现的,但现在找不到了。像另一个答案中建议的那样,在经过rebase后,--author-date-order
对我不起作用。
因此,一种方法是使用git log pretty=format: ...
以ISO格式输出提交日期,然后让sort
或 sort -r
修复顺序。
例如:
git log --pretty=format:"%ad %h by %an, %s" --date=iso | sort -r | less
这将打印提交的ISO日期、哈希值、作者和消息,并按最新的提交排序。
如果您需要每个提交的更多信息,则可以在git log --help
的漂亮格式部分找到更多格式选项。
git log --author-date-order
这个命令按照作者的时间戳排序,而不是提交的时间戳排序。
--author-date-order
在显示所有子提交之前不显示任何父提交,但以作者时间戳顺序显示提交。
虽然自提问之后可能会有所改变,但在当前的 git 2.35 中,日志有三种不同的排序方式。从 git log 帮助页面获取:
--date-order
: 显示子提交的所有内容之前不显示父提交,否则按提交时间戳顺序显示提交。--author-date-order
: 显示子提交的所有内容之前不显示父提交,否则按作者时间戳顺序显示提交。--topo-order
: 显示子提交的所有内容之前不显示父提交,同时避免混合显示多行历史提交。默认是 --date-order
,尽管 --graph
暗示了 --topo-order
。
对于 rebase 后的分支,--date-order
将按照提交被 rebase 的时间排序,而--author-date-order
将按照最初提交的时间排序。
(请记住,有各种各样的方法可以混淆时间戳,因此它们并不完全可靠。)