git修改push过的commit信息及用户名和邮箱

先声明:该操作会改变历史记录,所以需要谨慎执行,尤其是在团队协作的环境下

首先,打开终端或命令行,并且切换到目标Git仓库目录下

  1. 定位要修改的commit:找到需要修改的记录的commit ID。

  2. 使用交互式rebase :如果你要修改的commit不是最近的一次,可以使用以下命令,其中commit_id是你要修改的commit的ID的前一个commit的ID

    复制代码
    git rebase -i commit_id

    如果需要修改的是最近的commit,则可以使用:

    复制代码
    git rebase -i HEAD~n

    其中n是你需要回退的commit数量

  3. 选择要修改的commit :在打开的编辑器中,将需要修改的某commit前面的pick改为edit,然后保存并退出编辑器

  4. 修改用户名和邮箱:现在你可以使用以下命令修改用户名和邮箱:

    复制代码
    git commit --amend --author="新用户名 <新邮箱地址>"
  5. 执行上述命令后会进入一个编辑文档,若需修改commit信息就敲I键进入编辑模式,在最上方看到上次的commit内容修改成新的(下方一堆"#"内容不用管),然后分别ESC:wq键保存退出,若不修改直接编辑保存退出即可

  6. 完成rebase:使用以下命令完成rebase过程:

    复制代码
    git rebase --continue

    如果有更多的commit需要修改,重复步骤4,5和6

  7. 强制推送到远程仓库:修改完成之后,你需要强制推送到远程仓库。这个操作会覆盖远程仓库的历史,所以需确保这是你想要的结果

    复制代码
    git push --force

请记住,在强制推送之前,你应该提醒你的团队成员,因为这将重写远程仓库的历史。所有的团队成员都将需要根据新的历史进行操作,可能包括使用git pull --rebase来同步本地仓库

相关推荐
Arva .4 小时前
开发准备之日志 git
spring boot·git·后端
奇某人5 小时前
【嵌入式】【GIT】终端中文乱码修复
git
可爱的蜗牛牛5 小时前
上传本地git所有历史记录到已有远程仓库
git
idaibin8 小时前
"Git 多仓库用户身份自动切换与隐私保护指南
git·github
小何好运暴富开心幸福8 小时前
C++之日期类的实现
开发语言·c++·git·bash
im_AMBER10 小时前
Web 开发 24
前端·笔记·git·学习
银安10 小时前
Git篇(4):分支(Branch)与引用(Reference)
git
~央千澈~11 小时前
宝塔服务器面板部署安装git通过第三方应用安装收费怎么办—bash: git: command not found解决方案-优雅草卓伊凡
git
无言以对,沉默不语,随你随你。12 小时前
【解决办法】GitBash不能在任意文件夹打开
经验分享·笔记·git
stark张宇13 小时前
告别Git恐惧症!一套课程搞定Win/Mac/Linux三端配置与核心原理
git·架构·github