【发布时间】:2015-09-21 15:57:56
【问题描述】:
我想手动控制 git 提交时间戳,以便我的 GIT_COMMITTER_DATE 始终与 GIT_AUTHOR_DATE 匹配。我见过很多使用 filter-branch 重写历史的解决方案,但我宁愿积极主动地把逻辑放在一个 git hook 中,这样它就可以一直匹配下去。
但我发现,虽然这些变量在调用 git 的环境中定义时可以正常工作,但在 pre-commit git 挂钩中定义它们似乎没有任何效果。例如:
# this works if run directly on cmd line, but not inside the pre-commit hook
export GIT_AUTHOR_DATE='Mon, 11 Aug 2014 11:25:16 -0400'
export GIT_COMMITTER_DATE="$GIT_AUTHOR_DATE"
有没有办法在 git 钩子中动态调整这些值,以便提交自动具有所需的时间戳?我在 git 版本 1.8.5.2
【问题讨论】:
-
您知道,根据man page,GIT_COMMITTER_DATE “不应被覆盖,除非您知道绝对需要覆盖它(以确保提交获得与另一个相同的 ID 或在迁移历史时)"?
-
这些变量是为了明确的操作目的而提供的,这通常在命令行上完成。如果我现在想在 git hook 中进行同样的操作,会有什么不同?
-
这不是真的,因为命令行只影响作者日期,而不是提交者日期。您不能从命令行变量更改提交者日期,只能通过环境变量。但是不,我不知道手册页这么说的根本原因。
-
我一直在使用别名作为一种丑陋的解决方法:stackoverflow.com/questions/28832219/… 很伤心。