我正试图从repo中获取(统计)提交信息。因此,我做到了:
$ git clone remote/path/to/repo localrepo && cd localrepo
$ git pull
$ git show --since 'Oct-03-2014' --until 'Oct-13-2014' --shortstat
一般来说,如果在此期间origin/master
分支(我目前所在的分支)上有提交,那么上面命令的最后一行将产生我想要的漂亮的摘要输出。
问题是,如果时间段包含来自不同分支的合并。对于这些,git不产生任何类型的输出(显然合并不包含可以显示的diff)。
那么,我如何才能获得包含合并差异信息的--shortstat
摘要呢?
正如您所发现的,日期/时间戳不是查询git历史记录的可靠方法,它们失败的方式之一是处理合并提交。
因此,对于这个特定的实例,手动调查您的树,并在主线上找到您想要开始的提交(对应于10月3日)。称之为SHA_OLD
。现在在主线上选择一个对应于10月13日的SHA。称之为SHA_NEW。然后使用
git show ^SHA_OLD SHA_NEW --shortstat
在未来,您可以通过使用标记来简化此过程。git tag
定期提交,然后将其用作git show
的参数