如何修复几个旧提交的作者日期?

问题描述 投票:0回答:1

是否可以更正之前几次提交的作者日期?包括已经推送的吗?

我仍在学习如何正确使用 Git 和 GitLab。目前,我正在上传旧项目及其各种版本,同时尝试建立良好的提交历史记录。我正在使用 Git Bash 和 Git GUI 来构建旧历史记录。

不幸的是,在转换为数字日期时,我经常混淆六月和七月。幸运的是,当我注意到自己的错误时,我只提交了 4 次。然而,其中一项提交已被推送。

我已经将变基视为一种选择,但我不完全理解它是如何工作的,或者我需要做什么才能再次开始前进。

我想保留我的提交评论和标签,只需修复作者日期即可。

哎呀,用核武器攻击整个存储库并重新开始可能会更容易......我在 Bash 历史记录中仍然有提交评论。

git gitlab git-rebase
1个回答
0
投票

如果您需要更新最近 4 次提交的作者日期,则需要通过编辑最后 4 次提交来重新设置本地历史记录,然后再次推送到远程。

警告:在变基并将重写的历史记录推送到远程之前,请确保没有其他开发人员将他们的工作基于任何重写的提交。这是因为 Git 不会更新现有提交,而是创建新提交。因此,在创建新的更改历史记录后,任何与重写的提交不同的分支都无法正常合并,除非将其视为开发的孤儿线。

要重新设定您最近 4 次提交的基准并更新其作者日期,您可以:

  1. 选择要变基的提交范围(我假设有问题的分支是
    master
    )。
git rebase -i master~4
  1. 为您的所有 4 次提交选择编辑选项。例如:
edit 84d5866 commit1
edit 9036914 commit2
edit 3a05ed4 commit3
edit e545deb commit4
  1. 用正确的日期修改每个提交
# amend the commit with the right date
git commit --amend --date=<your-date>

# move to the next commit to edit or end the rebase
git rebase --continue
  1. 强制推送到远程(我假设它的名字是
    origin
    )知道上面解释的后果。
git push --force origin master
© www.soinside.com 2019 - 2024. All rights reserved.