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