git中变基时发生了什么?/ git rebase

背景

我说一个场景。
在前两天我从main分支分叉出一个feature分支用于开发新功能。
这两天main分支也没闲着,他上面有很多新的修改。
现在我想要把feature分支的修改合并到main分支,并且不想像merge那样产生非线性的历史。

于是我执行了下面的命令(他的作用就是让feature分支像是基于最新的main分支进行开发的)

git switch feature
git rebase main

发生了什么

image

副作用

feature的每一个新的提交,都被篡改了提交ID。而这种id的篡改,对于线上的任何一个分支来说都是不可容忍的。因此这种一个分支变基到另一个分支的行为,在大多数情况下都不该做出。

变基最有用的还是在拉取线上分支的修改时,因为此时是本地分支中,未推送到远程的修改X变更了提交ID,这在大多数情况下是可以接受的,因为没有提交到远程就不会影响到团队,人家只知道修改后的提交ID而不知道他已经是修改过的。

image

posted @ 2026-05-12 10:17  魂祈梦  阅读(13)  评论(0)    收藏  举报