如何修改现有未发布的提交的答案?描述一种修改尚未提交到上游的先前提交消息的方法。新消息继承了原始提交的时间戳。这似乎合乎逻辑,但是有没有办法重新设置时间呢?
您可以进行交互式变基,并为要更改其日期的提交选择编辑。例如,当变基过程停止修改提交时,您输入:
git commit --amend --date="Wed Feb 16 14:00 2011 +0100"
之后,您继续进行交互式变基。
更新(响应 studgeek 的评论):更改提交日期而不是作者日期:
GIT_COMMITTER_DATE="Wed Feb 16 14:00 2011 +0100" git commit --amend
上面的几行设置了一个环境变量 GIT_COMMITTER_DATE,用于修改提交。
一切都在 Git Bash 中进行了测试。
将git filter-branch
与环境过滤器一起使用,该环境过滤器将GIT_AUTHOR_DATE
和GIT_COMMITTER_DATE
为您要修复的提交的特定哈希值。
这将使该值和所有将来的哈希值无效。
例子:
如果您想更改119f9ecf58069b265ab22f1f97d2b648faf932e0
的提交日期,则可以使用以下方法进行更改:
git filter-branch --env-filter \
'if [ $GIT_COMMIT = 119f9ecf58069b265ab22f1f97d2b648faf932e0 ]
then
export GIT_AUTHOR_DATE="Fri Jan 2 21:38:53 2009 -0800"
export GIT_COMMITTER_DATE="Sat May 19 01:01:01 2007 -0700"
fi'
在一个命令中处理所有这些建议的更好方法是
LC_ALL=C GIT_COMMITTER_DATE="$(date)" git commit --amend --no-edit --date "$(date)"
这会将上次提交的提交和作者日期设置为 “现在”。