跳到主要内容

18 rebase 变基

rebase 变基

git rebase 是 Git 中的一种操作,用于将一个分支的更改应用到另一个分支的基础之上。它的主要作用是让提交历史更加整洁。

基本用法

  1. 交互式 rebase
    使用 git rebase -i <commit> 命令可以对提交历史进行编辑,例如修改提交信息、合并提交等。

    git rebase -i HEAD~3

    上述命令会对最近的 3 次提交进行交互式编辑。

  2. 变基到另一个分支
    使用 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 featuregit rebase main 后,历史会变为:

A---B---C---D'---E' (feature)

feature 分支的提交被重新应用到 main 分支的最新提交之后。