git commit - 将时间戳设置为未来

45 git

我需要使用Git进行一些提交,但我希望将来git-log中的时间戳.

如何在git中进行提交,导致将来的时间戳记在git-log中注册?

Dus*_*tin 69

你应该稍等一下.

或者你可以这样做:

/tmp/x 604% env GIT_AUTHOR_DATE='Wed Dec 19 15:14:05 2029 -0800' git commit -m 'future!'
[master]: created 6348548: "Future!"
 1 files changed, 1 insertions(+), 0 deletions(-)

/tmp/x 605% git log 

Author: Dustin Sallings <dustin@spy.net>
Date:   Wed Dec 19 15:14:05 2029 -0800

    Future!
Run Code Online (Sandbox Code Playgroud)

请注意,既有作者日期又有提交者日期,因此请务必设置正确的日期(或两者).

  • 它也适用于ISO 8601日期格式:"2029-12-19 15:14:05 -0800".我喜欢. (7认同)
  • "你应该等一下." 大声笑 (5认同)
  • @Blago:在git中,作者(编写更改的人)和提交者(将更改放入存储库的人)将被单独跟踪.让你做各种伟大的事情. (4认同)
  • GIT_AUTHOR_DATE和GIT_COMMITTER_DATE有什么区别? (2认同)

Pau*_*ijs 49

你可以修改提交,一个2037年的例子:

git commit --amend --date="Wed Feb 16 14:00 2037 +0100"
Run Code Online (Sandbox Code Playgroud)

我也尝试了2038年,但后来我得到了一个值.

  • 任何直到1月19日3:14:07 2038 UTC的工作都应该有效.http://en.wikipedia.org/wiki/Year_2038_problem (11认同)

Hug*_*ugo 10

如果要在将项目添加到git时保留实际更改日期,可以使用

env GIT_AUTHOR_DATE="`ls -rt *.cpp|tail -1|xargs date -u -r`" git commit -m "Old sources retaining old change-dates of last changed
 file: `ls -rt *.cpp|tail -1`, actual commit date: `date`"
Run Code Online (Sandbox Code Playgroud)

这将提交最后更改的*.cpp文件的更改日期,以及实际提交日期的一个很好的解释消息.