我正在使用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年以后的所有结果。也就是说,这不是真正的日期范围计算;这是一个简单的字符串匹配,当找到与右侧匹配的第一个条目时停止。