我稍微查看了一下,没有找到确切回答这个问题的内容。最简单的解决方案似乎是: 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'
,例如(未经测试)。请注意,这将过滤当前分支可达的所有提交,这可能包括从其他分支可达的提交。 - torekrefs/original/
时,才需要-f
。它告诉git filter-branch
继续清除现有的refs/original/
命名空间。 - torekgit update-ref
)替换为映射到复制提交中的哈希值。但是,它不依赖于reflogs来保存其先前的值,而是将原始值保存在refs/original/
中,以便refs/heads/master
变成refs/original/refs/heads/master
。因此,在第一个过滤器之后,无论是否使用-f
,您最终都会得到一个填充的refs/original/
名称空间。当您对结果感到满意时,您应该手动删除这些内容。 - torek