git rebase -i 5d39ff2
例如:
准备合并
把 e7ba81d(Commit-1)、5756e15(Commit-2)、b1b8189(Commit-3) 合并到一起,
并且只保留 e7ba81d(Commit-1)
* b1b8189 - (HEAD -> master) Commit-3
* 5756e15 - Commit-2
* e7ba81d - Commit-1
* 5d39ff2 - Commit-0
-i 实际上就是 --interactive 的简写,在使用 git rebase -i 时,我们要在后面再添加一个参数,这个参数应该是 最新的一个想保留的 Commit。这句话读起来有点坳口,所以这个情况下通常需要举个例子。就我们前面提到的那个例子中,这个「最新的一个想保留的 Commit」就是 5d39ff2(Commit-0),于是我们的命令看起来就长这样:
打开合并界面
git rebase -i 5d39ff2
pick e7ba81d Commit-1
pick 5756e15 Commit-2
pick b1b8189 Commit-3
squash:使用该 Commit,但会被合并到前一个 Commit 当中
fixup:就像 squash 那样,但会抛弃这个 Commit 的 Commit message
选择需要合并的commit
pick e7ba81d Commit-1
s 5756e15 Commit-2
s b1b8189 Commit-3
完成后,使用 :wq 保存并退出。这个时候,我们进入到了下一个界面:
修改commit注释,想怎么写怎么写
# This is a combination of 3 commits.
# The first commit's message is:
Commit-1
# This is the 2nd commit message:
Commit-2
# This is the 3rd commit message:
Commit-3
通过下面的注释,我们可以知道,这里其实就是一个编写 Commit Message 的界面,带 # 的行会被忽略掉,其余的行就会作为我们的新 Commit Message。为了完成我们的需求,我们修改成这样:
使用 :wq 后,再看一下我们的 log:
网友评论