什么是 git rebase?
你可以把 git 提交想象成一条长链。每次提交,都会在链中增加一个环节。问题是,有时这条链会像这样分裂成两条:
D
|
C C2
| |
B --
|
A
当大多数人想要将 C2 移回原始链时,他们所做的就是所谓的合并,它看起来像这样:
E
| \
D |
| |
C C2
| |
B --
|
A
其中 E 是一个提交,它将 C、D 和 C2 的更改合并成一个新的提交。然而,如果分支不断分支,这很快就会导致历史记录变得像意大利面条一样。让我们看看,当你切换到包含提交 C2 的分支(我们称之为“dev”),并在主线上(我们称之为“master”)运行 rebase 时会发生什么。所以
git checkout dev
git rebase master
C2
|
D
|
C
|
B
|
A
现在历史记录清晰多了,因为 C2 只是被移动到了行尾。这就是 rebase 的作用。注意,master 仍然指向“D”,而 dev 指向的是新的“C2”位置。
文章来源:https://dev.to/borrrden/what-is-git-rebase-4h9a