通过git-rebase整理本地commit
banner 2020-09-09 git
开发过程中,我们可能会提交一些无用的 commit
,这些 commit
会让我们感到不舒服,不利于我们代码review和污染其他的分支。
# 如何合并多次提交纪录
# 1、我们来合并最近的 4 次提交纪录,执行:
git rebase -i HEAD~4
1
# 2、这时候,会自动进入 vi
编辑模式:
s 4e6fe8d7 update text2.json
s d37a923b update text.json
s bd50c0cf add text2.json
s 6f485bc0 add text.json
# Rebase 6801147e..6f485bc0 onto 6801147e (4 commands)
#
# Commands:
# p, pick = use commit
# r, reword = use commit, but edit the commit message
# e, edit = use commit, but stop for amending
# s, squash = use commit, but meld into previous commit
# f, fixup = like "squash", but discard this commit's log message
# x, exec = run command (the rest of the line) using shell
# d, drop = remove commit
#
# These lines can be re-ordered; they are executed from top to bottom.
#
# If you remove a line here THAT COMMIT WILL BE LOST.
#
# However, if you remove everything, the rebase will be aborted.
#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
按照如上命令来修改你的提交纪录:
s 4e6fe8d7 update text2.json
s d37a923b update text.json
s bd50c0cf add text2.json
p 6f485bc0 add text.json
1
2
3
4
2
3
4
保存:wq
# 3、如果你异常退出了 vi
窗口,不要紧张:
git rebase --edit-todo
1
这时候会一直处在这个编辑的模式里,我们可以回去继续编辑,修改完保存一下:
git rebase --continue
1
# 4、在任何时候,我们都可以用 --abort
参数来终止 rebase
的行动,并且分支会回到 rebase
开始前的状态。
git rebase —abort
1