git for-each-ref-按年龄过滤结果

时间:2019-06-17 18:59:35

标签: git

我正在使用here中的以下命令:

git for-each-ref --format='%(color:cyan)%(authordate:format:%m/%d/%Y %I:%M %p)    %(align:25,left)%(color:yellow)%(authorname)%(end) %(color:reset)%(refname:strip=3)' --sort=authordate refs/remotes

是否可以按特定日期对authordate进行排序?

例如,仅显示X天或几个月前的结果,或者可能显示给定日期之后的结果?我当时在考虑使用grep,但我希望有一种方法可以实际解析给定的日期以进行计算,而不仅仅是字符串匹配。

我使用sed提出了以下建议:

git for-each-ref --format='%(color:cyan)%(authordate:format:%Y-%m-%d %I:%M %p)    %(align:25,left)%(color:yellow)%(authorname)%(end) %(color:reset)%(refname:strip=3)' --sort=authordate refs/remotes | sed -n '/{start_year}-*/,/{end_year}-{end_month}-*/p'

但是最好只给出一个特定日期,并在该日期之前或之后获取所有结果。

编辑:如果给定的结束日期不存在,则上述使用sed的方法将不起作用,因为sed只是流编辑器。例如,如果生成的sed字符串为'/2017-*/,/2018-10-*/p',但没有与2018-10-*匹配的条目(在2018年10月没有分支的提交),则它将获得2017年以后的所有结果。也就是说,这不是真正的日期范围计算;这是一个简单的字符串匹配,当找到与右侧匹配的第一个条目时停止。

0 个答案:

没有答案