你可能会说
先开一条新分支改,别动 main
从主线拉出一条能独立开发、互不打扰的线
大白话解释
分支就像从主干道上岔出去的一条小路。你可以在小路上随便折腾、掉头、重铺,主路上的车照常跑,一点不受影响。等小路修好了,再并回主干道。
它解决的是多人同时改代码的麻烦。如果所有人都直接在主线上改,一个人的半成品可能把别人的正常工作弄坏。开一条分支,各改各的,互不干扰。
所以日常里,做新功能开一条,修紧急问题再开一条,各自独立。做完、测好,再合并回主线。
什么时候会遇到
- 开发新功能前,先建一条以功能命名的分支,避免影响线上版本。
- 线上突然出问题,要从主线上切一条分支紧急修复。
- 提交代码后发现自己交到了错误的分支,需要把改动挪过去。
- 代码评审平台上,一条分支通常对应一个待评审的改动。
- 让 AI 助手干活前,让它先开一条分支,做完再合回来。
可以直接对 Agent 说
「帮我从主分支切一条新分支出来,名字叫 feature/user-login,之后所有改动都在这个分支上做」
「我好像把改动提交到主分支上了,帮我把这次提交挪到新分支,并把主分支还原」
「帮我看看本地有几条分支,哪些已经合并回主线可以删掉,列出来给我确认」
正文里带下划线的词,是本站其它词条的入口;这一篇自动链了 2 个相关术语。
最容易想岔的地方
常见的错误理解: 分支可以随便拉,反正不影响主分支
更准确的理解: 分支拉出来是要还的。开太多长期不合的分支,最后合并时的冲突量会大到没人敢动
常见的错误理解: 在自己分支上可以随便写,反正别人看不到
更准确的理解: 分支不是保险箱。你基于的那条主线一直在往前走,分得越久,你的改动和别人的差得越远
测一下:真遇到了你会怎么处理
单选 · 选完立刻看解释
你正在给购物车加优惠券功能,做到一半,线上突然报了个必须马上修的 bug。
怎么开工最不容易出事?
-
分支就是并行的隔离带。两条线互不干扰,修完的可以先上,做一半的继续躺着。
-
半成品会污染主分支,别人拉下来就是跑不起来的代码,而且「撤销」本身也是风险操作。
-
线上问题等不了排期。这也是分支存在的理由 —— 让你能立刻切换上下文。
题目只考「这个场景下的第一反应」,不考名词背诵 —— 分支的定义在上面已经讲过了。