使用变基 rebase 修改历史提交

目标:在 a 文件第一次提交时添加一行注释 "Hello, world!"

1. 查看历史提交

就不抹去个人信息了,懒hhh
git log
image-20201211192437482

2. 使用 rebase 变基到指定的 commit

2.1 向前回滚 4 次 commit 记录到 c3e3d6

不确定有么有更好的办法。
git rebase -i HEAD~4
image-20201211193114036

2.2 把第一行关于 a 提交的 pick 改成 edit

image-20201211193213384

2.3 按 Ctrl + X 退出

image-20201211193253641

2.4  选择 Y 之后按回车保存

image-20201211193329627

可以看到,工作区已经切换到了指定的 commit。

3. 修改内容

3.1 在 a 文件中添加一行注释

image-20201211193602789

3.2 使用 reset 命令撤销上次提交,合并这两次的修改

git reset HEAD~
image-20201211193825613

3.3 暂存修改并提交

git add --all
image-20201211194126232
git commit -m "modified: a"
image-20201211194153030

3.4 确认提交记录

git commit --amend
image-20201211194303512

老办法,Ctrl + X 之后输入 Y 并回车确认修改。

image-20201211194423450

4. 完成变基

git rebase --continue
image-20201211194520495
IInfinity

IInfinity

大道虽简,知易行难。
CN