为什么"git show"回来是空的?



我正试图从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 的参数

相关内容

  • 没有找到相关文章

最新更新