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来同步本地仓库

相关推荐
GISer_Jing5 小时前
Git协作开发:feature分支、拉取最新并合并
大数据·git·elasticsearch
高山莫衣11 小时前
git rebase多次触发冲突
大数据·git·elasticsearch
码农藏经阁11 小时前
工作中常用的Git操作命令(一)
git
kobe_OKOK_11 小时前
【团队开发】git 操作流程
git·elasticsearch·团队开发
码农垦荒笔记11 小时前
Git 安装闭坑指南(仅 Windows 环境)
windows·git
CC码码21 小时前
管理你的多个 Git 密钥(多平台多账号)
git·gitlab·github
CC码码21 小时前
管理你的多个 Git 密钥(单平台多账号)
git·gitlab·github
大卫小东(Sheldon)21 小时前
GIM 1.5发布了! 支持Windows系统了
git·ai·rust
flying jiang21 小时前
将大仓库拆分为多个小仓库
git
李boyang10 天前
Git(四):远程操作
git