如何获得在两个Git日期之间发生的所有提交之间的差异?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (51)

或者只是两个日期之间发生的所有提交?在SVN中,你可以做如下的事情

svn diff -r{date}:{date}

但我似乎找不到相当于这个的Git。

具体来说,我正在编写一个脚本,每天发送电子邮件,其中包括当天提交的所有代码,以及由谁提交的邮件。

提问于
用户回答回答于

你可以使用 git whatchanged --since="1 day ago" -p

它也需要一个--until参数。

文件

用户回答回答于

我已经尝试过的事情:

  • git whatchanged --since="1 day ago" -p这里开始 但是,即使在一个文件中有多个提交,这也会为每次提交提供差异。我知道“日期”在git中是一个松散的概念,我认为必须有一些方法来做到这一点。
  • git diff 'master@{1 day ago}..master给出了一些警告warning: Log for 'master' only goes back to Tue, 16 Mar 2010 14:17:32 +0100.,并没有显示所有的差异。
  • git format-patch --since=yesterday --stdout 不给我任何东西。
  • revs=$(git log --pretty="format:%H" --since="1 day ago");git diff $(echo "$revs"|tail -n1) $(echo "$revs"|head -n1) 以某种方式工作,但看起来很复杂,并不限于当前分支。

最后:

有趣的是,git-cvsserver不支持“cvs diff -D”(没有记录在某处)。

扫码关注云+社区