如何从git获取指定用户在两个日期之间的差异?

如何从git获取指定用户在两个日期之间的差异?,git,date,diff,Git,Date,Diff,如何从git获取指定用户在两个日期之间的diff?或者,如何使用gitwhatchanged命令列出指定用户的提交 有没有无脚本的方法(内置git命令)?我相信没有这样的方法来获得差异,只知道日期 从今天起,您可以执行以下操作: git log --since "OCT 4 2011" --until "OCT 11 2011" --pretty=format:"%H" 然后是第一次和最后一次修订之间的git diff。如果修订列表太长,请使用上面的git log…和|head-1和|tail

如何从git获取指定用户在两个日期之间的
diff
?或者,如何使用git
whatchanged
命令列出指定用户的提交


有没有无脚本的方法(内置git命令)?

我相信没有这样的方法来获得差异,只知道日期

从今天起,您可以执行以下操作:

git log --since "OCT 4 2011" --until "OCT 11 2011" --pretty=format:"%H"
然后是第一次和最后一次修订之间的git diff。如果修订列表太长,请使用上面的
git log…
|head-1
|tail-1
获取第一个和最后一个修订


请注意,上述git日志将在给定日期之间准确返回修订版,即10月5日、10月6日、…、10月10日的修订版。

这是可能的,并且符合用户/提交者标准:

git log --after="2015-10-14" --before="2015-10-21" --grep="MB[FT][0-9-]*" --author="John\|Mary"
这将匹配任何东西

  • 在那两天之间
  • 作者将姓名与约翰或玛丽匹配
  • 其中,提交消息包括(例如,Jira票证号码,形式为)
    MBT
    MBF
    加上可包含
    -
    字符的数字代码

您可以直接使用diff进行排序,但使用
@{date}
符号(例如,
git diff{date1}}{date2}
)不太可靠。问题是,
@{date}
构造没有查看提交历史记录以将日期转换为提交id,而是使用revlog。结果是,如果您经常拉取,您的revlog将拥有足够细粒度的信息,上面的内容可能会满足您的需要,但如果您不这样做,结果将不准确……我必须添加等号以使其工作:
git log--since=“FEB 1 2014”---until=“FEB 30 2014”
这将显示日志,但不显示差异。
git log --since "MAY 1 2017" --until "MAY 31 2017" -p --author="Jack" > diffJackMay.patch