Git 如何将分支中所有提交的日期更改为现在?

Git 如何将分支中所有提交的日期更改为现在?,git,Git,在某些情况下,我可能希望掩盖完成工作的确切日期和时间,并希望在不丢弃整个提交历史的情况下重置工作集合的日期 如何重写所有提交的日期?我环顾了一下四周,没有找到任何答案。最简单的解决方案似乎是: git filter-branch -f --env-filter 'GIT_COMMITTER_DATE="`date`"; GIT_AUTHOR_DATE="`date`"' git push -f origin master 如果在一次过程中设置两个变量,速度会快得多(快一倍):git filte

在某些情况下,我可能希望掩盖完成工作的确切日期和时间,并希望在不丢弃整个提交历史的情况下重置工作集合的日期


如何重写所有提交的日期?

我环顾了一下四周,没有找到任何答案。最简单的解决方案似乎是:

git filter-branch -f --env-filter 'GIT_COMMITTER_DATE="`date`"; GIT_AUTHOR_DATE="`date`"'
git push -f origin master

如果在一次过程中设置两个变量,速度会快得多(快一倍):
git filter branch--env filter'tmp=$(date);例如,GIT_AUTHOR_DATE=$tmp GIT_COMMITTER_DATE=$tmp'
(未测试)。请注意,这会过滤所有可从当前分支访问的提交,其中可能还包括可从其他分支访问的提交。我的用例只是对一个主分支进行整体过滤,因此我并不真正关心其他分支提交的可达性。执行一次运行确实要方便得多。现在,如果我知道为什么需要-f备份覆盖,那么当且仅当
refs/original/
存在时,才需要
-f
。它告诉
git filter branch
继续并吹走现有的
refs/original/
name-space。是的,但我第一次运行它时它并不存在,现在它确实存在。我对我的git裁判没有那么快。