【发布时间】:2018-10-08 19:01:42
【问题描述】:
已经有一个question 询问如何在 Git 中找到提交的日期。但是,该问题的所有答案都使用git show 或git log 命令,它们都是porcelain commands;瓷器命令的标准智慧似乎是它们的output format may change,因此应尽可能避免在脚本中使用它们。
有没有办法只使用管道命令来获取 git 提交的时间戳?
【问题讨论】:
-
有什么理由需要一个管道命令而不是简单地强制一个瓷器命令的格式?例如。
git log --pretty=format:%aD | head -1或git show --format="format:%aD" --no-patch HEAD. -
@pepak 只是,据我了解,不能保证这些命令在未来的 git 版本中会继续提供相同的输出。例如,git 2.7.4 以
%aD格式给我Mon, 8 Oct 2018日期,但我不知道我是否可以合理地预期某些未来版本不会为相同的提交生成Mon, 08 Oct 2018。 -
好吧,既然
%aD格式被指定为“作者日期,RFC2822 样式”,格式应该保持不变。要获得另一种固定格式,您可以使用%aI或添加专用的--date=raw。这些都不应该比“管道”版本发生更大的变化。 -
@pepak RFC2822 允许但不需要前导零,因此“RFC2822 样式”不能保证任何一种变体。我同意
%aI似乎不太可能发生变化,但是由于 git 文档明确表示瓷器命令可能会发生变化并且不应在脚本中使用(当然,除非它们提供了--porcelain选项),我宁愿不依赖猜测他们未来的发展。
标签: git scripting git-plumbing