git 修改最近一次 commit 信息
1. 修改最近一次 commit 信息
右击所需要修改的项目文件,打开 Git Base Here,输入命令如下:
git commit –amend
在打开最近一次 vim 编辑文本后,按 i 键进入编辑模式,然后进行编辑所需要修改的 commit 信息即可
编辑完后,按 Esc 键退出编辑模式,然后输入 :wq 后按下 Enter键进行保存修改
至此,本地最近一次 commit 信息已经修改完毕
如果想要修改推送的 commit 信息,下面 2 和 3 按需求任选一个进行重新推送即可
2. 强制推送(2 和 3 任选一)
强制推送会改写远端历史,命令如下:
git push --force-with-lease
3. 先拉取再推送(2 和 3 任选一)
git pull 会把远端变动和本地变动进行合并,形成新的合并(即同时看到修改前的旧的 commit 信息和修改后新的 commit 信息),命令如下:
git pull
在打开 vim 编辑文本后,按 Esc 键退出编辑模式,然后输入 :wq 后按下 Enter键进行保存修改,即可完成合并
ps:如果突然不想合并,则按 Esc 键退出编辑模式,然后输入 :q! 后按下 Enter键进行强制退出,即可中断这次的合并操作,回到 git pull 之前的状态
4. 改合并为覆盖
如果选了步骤 3 后想反悔,回到步骤 2 进行覆盖记录,则步骤如下:
① 查看所想要保留的 Commit ID
首先需要找到在执行 git pull 之前,用 git commit –amend 修正好的那个 commit 的 ID,可以执行命令进行查看提交历史,命令如下:
git log --oneline --graph
然后会看到类似的记录(最新的在最上面),如图所示:
然后复制所想要的 commit 的 ID
然后按 q 键进行退出
② 重设本地分支
强制让本地 master 分支指回正确的 commit,并丢弃之后所有的变更(即那個合并 commit),命令如下:
# ID 是上一步所复制的 ID
git reset --hard ID
说明:git reset --hard 该指令会将分支状态(HEAD)、索引(Staging Area)和工作目录(Working Directory)完全重设到指定的 commit,那个错误的合并 commit 会从本地历史中消失
③ 强制推送
然后和步骤 2 一样,执行强制推送的命令即可