18 rebase 变基
rebase 变基
git rebase
是 Git 中的一种操作,用于将一个分支的更改应用到另一个分支的基础之上。它的主要作用是让提交历史更加整洁。
基本用法
-
交互式 rebase
使用git rebase -i <commit>
命令可以对提交历史进行编辑,例如修改提交信息、合并提交等。git rebase -i HEAD~3
上述命令会对最近的 3 次提交进行交互式编辑。
-
变基到另一个分支
使用git rebase <branch>
可以将当前分支的更改应用到目标分支的基础上。git checkout feature
git rebase main这会将
feature
分支的更改重新应用到main
分支的最新提交上。
注意事项
-
避免在公共分支上使用 rebase
因为 rebase 会重写提交历史,在公共分支上使用可能导致协作问题。 -
解决冲突
在 rebase 过程中可能会遇到冲突,需要手动解决冲突并使用git rebase --continue
继续操作。
示例
假设有以下提交历史:
A---B---C (main)
\
D---E (feature)
执行 git checkout feature
和 git rebase main
后,历史会变为:
A---B---C---D'---E' (feature)
feature
分支的提交被重新应用到 main
分支的最新提交之后。