什么是 git rebase?

2025-06-04

什么是 git rebase?

你可以把 git 提交想象成一条长链。每次提交,都会在链中增加一个环节。问题是,有时这条链会像这样分裂成两条:

D
|
C   C2
|   |
B --
|
A
Enter fullscreen mode Exit fullscreen mode

当大多数人想要将 C2 移回原始链时,他们所做的就是所谓的合并,它看起来像这样:

E
|  \
D   |
|   |
C   C2
|   |
B --
|
A
Enter fullscreen mode Exit fullscreen mode

其中 E 是一个提交,它将 C、D 和 C2 的更改合并成一个新的提交。然而,如果分支不断分支,这很快就会导致历史记录变得像意大利面条一样。让我们看看,当你切换到包含提交 C2 的分支(我们称之为“dev”),并在主线上(我们称之为“master”)运行 rebase 时会发生什么。所以

git checkout dev
git rebase master
Enter fullscreen mode Exit fullscreen mode
C2
|
D
|
C
|
B
|
A
Enter fullscreen mode Exit fullscreen mode

现在历史记录清晰多了,因为 C2 只是被移动到了行尾。这就是 rebase 的作用。注意,master 仍然指向“D”,而 dev 指向的是新的“C2”位置。

文章来源:https://dev.to/borrrden/what-is-git-rebase-4h9a
PREV
我打算如何成为一名更好的软件开发人员
NEXT
我的 React 掌握之旅