新手怕 Git,其实把“分支”想成在地图上做的标记就通了。

一、分支 = 一条带记号的路

你写代码的历史,是一条不断往前延伸的路(提交链)。分支就是在这条路上插的一面旗,指向“当前走到哪”。

默认你在一面叫 main 的旗下走。想试试新功能又怕弄乱主线?新插一面旗 feature,到那面旗下随便改,主线 main 毫发无损。

分支像地图上的旗

二、合并(merge):把两条路接起来

feature 做完了,想并入主线:回到 main 旗下,说“把 feature 的路接进来”。Git 会造一个合并提交,把两边的改动合到一起。

缺点:历史里多出一条“合并线”,人多时看着像蜘蛛网。

三、变基(rebase):把补丁挪到最新起点

另一种做法:把你在 feature 上走的几步,“搬到” main 的最新终点后面重新走一遍。结果是一条干净的直线,没有多余的合并线。

代价:它改写了历史(原来的提交被复制成新的),所以已推送到公共仓库的分支,别 rebase,否则别人基于旧历史会冲突。

四、一句话口诀

  • 自己未公开的试验,想整洁就用 rebase。
  • 已经和大家共享的分支,用 merge,别改公共历史。
  • 分支用完就删,地图才不乱。

一句话:Git 分支就是“先插旗分头走,做完再把路接回主线”;merge 留痕、rebase 整洁,但 rebase 别动公共历史。