我使用一个涉及--date-order的相当复杂的--date-order命令来获得存储库状态的概述;但不幸的是,--date-order似乎使用的是提交者日期,而不是作者日期。这意味着,每次将主题分支重新定位到当前的上游,就会丢失主题分支中相对提交的有用的时间顺序(也就是说,每个分支都变成一个长行,因为它的所有提交都被重新基于顺序的、几乎相同的提交者时间戳)。
如果我能够让git-log命令由作者时间戳而不是提交者时间戳提交,这将得到解决。有人知道怎么做吗?
对于那些访问Google结果的人来说,你可能想看看醋酸纤维细胞的解决方案(和深度博客文章!),如果你在寻找标准的git-log风格的输出,多行,并提供关于每一次提交的详细信息的话,这是非常好的。
不幸的是,我现在需要修改这个问题,因为我是个白痴,没有提供关于我的用例的更具体的信息:我在“git-log模式”中使用git-log,我需要使git-log本身按作者日期顺序操作。据我所知,这在git-log之外是完全不可能做到的,因为git-log本身处理图的排序和打印。
git-log的脚本或补丁似乎是必要的。我将保留这个问题,直到有人可以( 1.编写这样的脚本),或者2.我们可以说服git作者包括一个--author --date-order组合的标志。(=
作为参考,下面是我当前的函数输出的样子,以及我需要重新排序的内容:

发布于 2013-09-18 12:10:09
GITVersion1.8.4向--author-date-order添加了一个git log参数;根据发布说明,“输出按拓扑排序,并根据作者时间戳显示并行历史中的提交混合在一起。”
发布于 2013-01-15 21:51:55
好吧,我花了很长时间才弄明白(详细信息)。简而言之,我发现了许多不完整或不正确的例子。下面的命令执行我认为您预期的操作:
$ git log --pretty="format:%at %C(yellow)commit %H%Creset\nAuthor: %an <%ae>\nDate: %aD\n\n %s\n" | sort -r | cut -d" " -f2- | sed -e "s/\\\n/\\`echo -e '\n\r'`/g" | tr -d '\15\32' | less -R您可以在Git Extras上的GitHub上找到这个脚本和其他脚本。
发布于 2011-12-20 16:44:38
当您查看与另一个分支一起运行的多个分支时,--date-order/--topo-order实际上只是控制修订列表中提交的顺序。"x是y的父母“关系总是被尊重的,即使你的提交者/作者时间戳是在遥远的过去或未来。
您需要类似于git log --pretty="format:%at %H" | sort -g的内容,然后将散列反馈到git log中。
https://stackoverflow.com/questions/8576503
复制相似问题