跳到正文

分支

Branch

中级通用

分支(Branch)是 Git 中指向某个提交、并随新提交向前移动的名字。它让你把不同任务的改动分开推进:比如在新分支开发登录页,完成后再合并回主分支,不必让未完成的代码混进主线。

你可能会说:「我想让 AI 先改登录页,别影响正在做的支付功能,做完确认没问题再放到一起。」

读之前建议先了解

动手看看

main当前所在 HEADfeature/login初始化项目商品首页main · HEAD
1

商城项目已有首页。现在你在 main 上,main 这个名字指向最新的首页提交。

要点

  1. 1

    分支指向提交而非复制项目

    你可以把分支理解成一个指向提交的名字。在这个分支上产生新提交后,名字会跟着移到新提交;创建分支并不是复制一整份代码,所以开一个分支的成本很低。

  2. 2

    切换分支会改变眼前文件

    你切换到另一个分支时,Git 会让工作目录呈现那个分支对应的文件状态。切换前如果还有没提交的修改,先确认它们会怎样被保留或处理,免得把登录页改动带进支付任务。

  3. 3

    完成任务还要决定如何合并

    分支能让任务先各走各的,但不会自动把成果送回主线。登录页做完后,你可以检查差异、运行测试,再合并;如果两边改了同一处代码,还可能需要处理冲突。

容易混淆的地方

提交是一次改动的记录,分支是指向提交、会随新提交移动的名字;你不是把代码「提交到一个独立副本」里。标签也能指向提交,但通常用来标记某个固定版本,而不是持续开发。工作树则是实际放着文件、供你编辑的目录,不等于分支。

什么时候用

适合用

  • 让 AI Agent 开发后台的新筛选功能,先在独立分支提交和测试,确认后再合并到主线。
  • 你和同事同时修改网站的不同功能,各自在分支上推进,减少未完成改动互相干扰。
  • 修复线上问题时,从合适的提交开修复分支,避免顺手带入还没完成的新功能。

不适合用

  • 只想给已发布版本留一个固定标记,方便以后找到它;用 Git 标签比开一个不再开发的分支合适。
  • 只是想撤销刚才的一次错误修改,并没有另一项任务要并行推进;先看撤销或回退提交的方式。
  • 想让同一份已部署代码只对部分用户开放新功能;用功能开关控制访问,分支本身不能控制线上用户看到什么。

练一练

你正在主线上修支付问题,想让 AI Agent 同时开发登录页,但登录页还不能进入下一次发布。怎么安排更合适?

让 AI 帮你做

请先确认当前分支和未提交的修改,再从当前主线创建一个用于开发登录页的分支。只在新分支修改登录页相关代码,完成后运行相关测试,并告诉我改了什么、是否有未提交内容;暂时不要合并到主线。

接下来学什么