Git日志:按提交过滤';作者日期
我有这样的承诺Git日志:按提交过滤';作者日期,git,Git,我有这样的承诺 commit 8a183536da1641afa6bd5a27ae391b387b7cd052 Author: hidden AuthorDate: Fri Sep 7 10:13:59 2012 Commit: hidden CommitDate: Fri Dec 7 17:29:24 2012 我想过滤日志并显示提交人AuthorDate 我尝试了——从&——直到选项,但它实际上过滤了提交日期 这意味着我只能在 git log --since='2012-1
commit 8a183536da1641afa6bd5a27ae391b387b7cd052
Author: hidden
AuthorDate: Fri Sep 7 10:13:59 2012
Commit: hidden
CommitDate: Fri Dec 7 17:29:24 2012
我想过滤日志并显示提交人AuthorDate
我尝试了——从
&——直到
选项,但它实际上过滤了提交日期
这意味着我只能在
git log --since='2012-12-01' --until='2012-12-10'
如果我想在开始日期“2012-09-01”和结束日期“2012-09-10”之前获取提交筛选器
有什么建议吗?恐怕您需要编写一些脚本:
git log --format="%ad %H" --date=iso | sort | ruby -ane 'date = $F[0] ; hash = $F[3] ; puts hash if ("2013-08-23".."2013-09-26").cover?(date)'
给我:
3eddb854eaea971e9a60147153f0f3c9be4f1a5a
dfeefd4715c4fddef0957c5aff238c525bb1def6
db654badb97f3784286171d4645e9face6a42865
62cdba07e6ae0cd28752491a83f584d3e18a5619
7643a0458a54200f8944583d66c089d63c1bf688
23b720852a36e959d0f45f9d11f05d4aa7ee0cb9
f729ec9c5bf37ee0284a8db47cbc79a0b53145bb
bc2d647ae86fbff1246ba163a5a99d25ed2f3523
a0752b3cbae39698449be953153ddaafe35c054c
8e88fffc75cbdda333c86cb4f5eb9b5b30263c27
3EDDB854EAEA971E9A0147153F0F3C9BE4F1A5A
dfeefd4715c4fddef0957c5aff238c525bb1def6
db654badb97f3784286171d4645e9face6a42865
62cdba07e6ae0cd28752491a83f584d3e18a5619
7643a0458a54200f8944583d66c089d63c1bf688
23b720852a36e959d0f45f9d11f05d4aa7ee0cb9
f729ec9c5bf37ee0284a8db47cbc79a0b53145bb
bc2d647ae86fbff1246ba163a5a99d25ed2f3523
a0752b3cbae39698449be953153ddaafe35c054c
8E88FFFC75CBDDA3333C86CB4F5EB9B5B30263C27
不幸的是,git日志3EDDB854EA971E9A0147153F0F3C9BE4F1A5A..8e88fffc75cbdda333c86cb4f5eb9b5b30263c27
不能保证工作,因为这些提交可能在不同的分支中
让我们解释一下我做了什么:
--format=“%ad%H”
–将日志格式化为作者\u日期提交\u散列
行--date=iso
–日期采用YY-mm-dd HH:mm:SS
格式排序
–Unix命令,按字母顺序对行进行排序;它适合以ISO格式对日期进行排序ruby-ane
–执行ruby脚本-n表示对每一行执行,-a拆分这些行并将字段放入$F
数组,-e精确执行脚本(“2011-02-23”。“2011-02-26”)。封面?(日期)
–从两个字符串创建范围,并检查日期是否包含在内(按照字母顺序,我们没有解析这些日期)git log --format=format:"%ai %aE %s"
然后按作者姓名和/或日期进行grep 有时我想找到我在某个日期编写的提交。为此,我使用了git log--all--author=jpo--format=“%ai%s”| grep-E^2015-09-01。不幸的是,这种方法通常不适用于按日期范围过滤,但对于问题中使用的范围,它可以很容易地完成:
git log--all--author=jpo--format=“%ai%s”| grep-E^2012-12-(0.| 10)
如果您想了解除了作者日期和提交消息之外的更多提交信息,只需在格式字符串中添加更多参数(请查看git帮助日志
页面的PRETTY FORMATS部分)。@skaleeSep
和Dec
不是同一件事……请参见:git log--format=format:%ai%aE%s”| grep'^2020-05-29*user@email.*$”