Git日志列表特定于日期的提交

时间:2014-02-17 15:18:29

标签: git selection commit

我已经和Git合作了几个月,并且我们的流程一直在慢慢自动化,因此我们不需要做太多的手动工作来部署我们的更改。

我一直在使用Git的--since选项,我可以告诉它可以使用这种确切的语法: - ones = {2014-02-03}

问题在于它从未列出该日期的所有提交。它列出了大多数但不是全部。而且,据我所知,它错过了当天最早的提交。有时2或3,但最后一个似乎是一致的。

我还从另一个回购中合并了一些提交,并且事情也从中得到了一些补充。我的理论是,选择是基于在2个不同的回购分配的哈希,因此落在我选择的范围内。我正在使用哈希来选择范围。我也遇到了麻烦。

我的目标是执行一个日志命令,最终为我提供尚未部署的提交。我使用shell脚本来提取文件并生成一个可部署的目录,然后将其复制到目标服务器,然后复制到它们的Web根目录。

谢谢!

1 个答案:

答案 0 :(得分:0)

--since--until(或他们的同义词)的一个问题是时区内容。提交中存储的日期为UTC,但以当地时间显示:

author ... 1385598279 -0700

$ date -r 1385598279
Wed Nov 27 17:24:39 MST 2013
$ TZ=UTC date -r 1385598279
Thu Nov 28 00:24:39 UTC 2013

那么,哪一天 1385598279? 27日还是28日?取决于我是在盐湖城,伦敦还是其他地方。

(一年中的某一天还有两个凌晨2:30,而另一天凌晨2:30没有。)

为每个部署版本保存SHA-1可能会更好。 SHA-1保证是唯一的,并将识别确切的版本。给定两个提交SHA-1,您可以通过在那些上运行git diff来准确地确定它们之间的变化。