[GIT] 修改之前的commit提交的作者信息和邮箱信息 [转]

目录

1 总体思路

  • 更改之前提交的作者信息和邮箱信息需要进行两步操作。

首先,使用 git filter-branch 命令进行历史重写
然后,使用 git push --force 将更改推送到远程仓库

Step1 使用 git filter-branch 进行历史重写

在终端或命令行中执行以下命令:

git filter-branch --env-filter '
OLD_EMAIL="旧的邮箱@example.com"
CORRECT_NAME="新的作者信息"
CORRECT_EMAIL="新的邮箱@example.com"
if [ "$GIT_COMMITTER_EMAIL" = "$OLD_EMAIL" ]
then
    export GIT_COMMITTER_NAME="$CORRECT_NAME"
    export GIT_COMMITTER_EMAIL="$CORRECT_EMAIL"
fi
if [ "$GIT_AUTHOR_EMAIL" = "$OLD_EMAIL" ]
then
    export GIT_AUTHOR_NAME="$CORRECT_NAME"
    export GIT_AUTHOR_EMAIL="$CORRECT_EMAIL"
fi
' --tag-name-filter cat -- --branches --tags

请替换 "旧的邮箱@example.com"、"新的作者信息" 和 "新的邮箱@example.com" 为你的实际信息。

Step2 强制推送更改到远程仓库

git push --force --tags origin 'refs/heads/*'

这将强制推送更改到远程仓库。请注意,强制推送可能会影响其他人正在共同协作的仓库,因此请确保在进行此操作之前与团队成员进行沟通。

Y 注意事项

  • 在进行历史重写之前,请确保已备份你的仓库,以防发生意外。
  • 历史重写会改变提交的哈希值,因此如果有其他人在你的提交上进行工作,他们可能需要重新基于你的新提交进行工作。

X 参考文献

posted @   千千寰宇  阅读(280)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)
历史上的今天:
2023-02-23 [知识管理] 服务器
2023-02-23 [知识管理] 家庭数据中心
点击右上角即可分享
微信分享提示