场景:修改代码,在完成git add
和git commit
后,发现没有修改完全,再次进行修改并执行git add
和git commit
。此时,会有两条commit记录。
$ git log -2
commit 3af0d8db4f44a86aad29e062e88463e3447f0eb8 (HEAD)
Author: xxx
Date: Thu Nov 23 10:03:35 2023 +0800
update test.txt
Change-Id: I9466ecc0221b6d6ddc87ad05bdb5c392ece33d1b
commit 0f3cecf13b56e5bf893ff12c959e1e3746efa1b0
Author: xxx
Date: Thu Nov 23 10:03:07 2023 +0800
add test.txt
Change-Id: I55e1e50bacdd4a3fbbd83e085b51336c6c7fe68f
如何将这两次commit合并成一个呢?
1、执行git rebase
,进入交互界面
$ git rebase -i HEAD~2

2、将第二个提交的关键字从 pick 编辑为 squash
或 fixup
(或 s
或 f
)。第一个提交应该保持不变(pick),因为我们想将第二个压缩到第一个中。修改后保存(:wq
)退出。

3、上一步保存后,Git 会输出提交消息,可以对commit message
进行编辑。若不需要修改,可直接保存(:wq
)退出。

4、再次查看提交记录。两次commit已经被合并成一个了。
$ git log -1
commit 7447ee00485d9bf2c030e685df0aebd7fa84233a (HEAD)
Author: xxx
Date: Thu Nov 23 10:03:07 2023 +0800
add test.txt
Change-Id: I55e1e50bacdd4a3fbbd83e085b51336c6c7fe68f
update test.txt
Change-Id: I9466ecc0221b6d6ddc87ad05bdb5c392ece33d1b
5、进行正常推送git push
即可。
网友评论