Git:推送后更改时间戳
在(意外地)将提交推送到远程存储库之后,如何编辑提交的时间戳 我更改了我的系统时钟以测试我的应用程序中的行为,但忘记在之前将其设置回原来的时间Git:推送后更改时间戳,git,github,Git,Github,在(意外地)将提交推送到远程存储库之后,如何编辑提交的时间戳 我更改了我的系统时钟以测试我的应用程序中的行为,但忘记在之前将其设置回原来的时间 git-add-u.和git-push。现在,我的GitHub repo显示了“一个月内”编辑的多个文件 我遵循了这个建议——特别是对OP的建议git push--force,但不幸的是编辑日期保持不变 这篇文章是关于更改提交消息,然后强制推进更改的。但在本例中,您首先需要修复提交时间戳,然后再执行git push--force 阅读本文了解如何修复时间
git-add-u.
和git-push
。现在,我的GitHub repo显示了“一个月内”编辑的多个文件
我遵循了这个建议——特别是对OP的建议
git push--force
,但不幸的是编辑日期保持不变 这篇文章是关于更改提交消息,然后强制推进更改的。但在本例中,您首先需要修复提交时间戳,然后再执行git push--force
阅读本文了解如何修复时间戳:
然后用力推
(顺便说一句,在github上,可能需要几次刷新才能看到更改。此外,我假设您知道您正在破坏历史记录,如果其他人克隆了回购协议,您就破坏了它们,等等,对吗?很好!)您可以尝试的--date
选项,如下所述:
修改/重置已提交更改的时间戳
上述方法对于未提交的更改非常有效,但是如果您提交了更改并希望修改AuthorDate
时间,该怎么办?同样,git使最后一次提交变得容易:
您可以使用上面的脚本重置AuthorDate
和CommitDate
(只需使用下面参考中的示例将GIT\u COMMITTER\u DATE
添加到上面的代码中即可)。尽管修改共享存储库的
CommitDate
听起来很混乱,可能会让其他人感到困惑
哈哈,是的!谢天谢地,这是一个只有我在做的项目。我把它作为一个学习工具,这样我就可以参与其他人的项目。请注意,谢谢!昨晚我做了git提交修改,看来直到今天早上才出现修改。
$ git commit --amend --date='<see documentation for formats>' -C HEAD
files="
foo.txt
bar.txt
"
for file in $files; do
dir=""; commit=""; date="";
dir=$(dirname $(find -name $file))
commit=$(git --no-pager log -1 --pretty=%H -- path "$dir/$file")
date="$(stat -c %y $dir/$file)"
if [ -z "$commit" ] || [ -z "$date" ]; then
echo "ERROR: required var \$commit or \$date is empty"
else
echo "INFO: resetting authorship date of commit '$commit' for file '$dir/$file' to '$date'"
git filter-branch --env-filter \
"if test \$GIT_COMMIT = '$commit'; then
export GIT_AUTHOR_DATE
GIT_AUTHOR_DATE='$date'
fi" &&
rm -fr "$(git rev-parse --git-dir)/refs/original/"
fi
echo
done