git 修改历史commit,都已push到远程 (图文详细说明)

目录

一、需求

二、思路

二、修改过程


一、需求

现状:在当前项目下输入 git log 显示如下,共三次commit(三次 commit 都已 push 到远程仓库)

目标:去掉 第一次提交的 "v1:" 和 第二次提交的 "v2:"

git 修改历史commit,都已push到远程 (图文详细说明)_第1张图片

二、思路

使用 git rebase 命令,因为我们几乎需要修改所有的提交,所以使用 git rebase -i --root

如果只需要修改倒数第 n 次提交,可以使用 git rebase -i HEAD~n (注意 HEAD 要大写)

二、修改过程

1、项目根目录下,输入 git rebase -i --root ,后会显式所有的提交,前三行 即为三次 commit

git rebase -i --root

git 修改历史commit,都已push到远程 (图文详细说明)_第2张图片

2、我们要修改前两次提交,修改第二行,和第三行的 pick  为 reword。当前模式下按 i 进入编辑模式,将前两行的 pick 改为 reword,如下: git 修改历史commit,都已push到远程 (图文详细说明)_第3张图片

3、退出编辑模式,保存退出(此处为 vim 常用命令),之后会弹出第一个要修改的页面,如下:

git 修改历史commit,都已push到远程 (图文详细说明)_第4张图片 4、直接将第一行的 "v1:" 去掉,保存退出即可: git 修改历史commit,都已push到远程 (图文详细说明)_第5张图片

 5、接下来会弹出第二要修改的页面,直接编辑后保存退出,直至都完成后,会返回命令行,此时所有修改都已完成:

git 修改历史commit,都已push到远程 (图文详细说明)_第6张图片

 6、重新输入 git log,确认修改完成:git 修改历史commit,都已push到远程 (图文详细说明)_第7张图片

7、强制提交本地修改到远程仓库 

git push --force

git 修改历史commit,都已push到远程 (图文详细说明)_第8张图片

你可能感兴趣的:(git使用,git,git,修改,commit,修改commit已经push,图文详细说明)