🐸 青蛙编程网
首页 / 开发工具 / Git / 4. 分支

4. 分支

这是什么:分支(branch) = 从某一点岔出去的平行世界,主干 main 保持稳定,实验和新功能在岔路上折腾,好再合回,坏直接扔。

为什么用:上一章你把改动都堆在一条线上提交。可新功能还没写完就合进主干,一旦搞砸整个项目跟着完蛋;多人同时改同一份代码更是灾难。分支让每件事各走各的路。

如何用:本章用 git switch -c 建分支、跳分支、删分支,再用 HEAD 搞清楚「我现在站在哪」。

4.1 为什么必须有分支

多人协作或并行任务没有分支会怎样?——两个 Feature 混在 main 里,A 的 Comp 充满 half-code、B 的 bug 没人敢动。每个任务一个分支,main 永远是「随时能发布」的状态。

4.2 基础命令

git branch                 # 看分支列表(* 是当前)
git branch add-weather     # 新建
git switch add-weather     # 切过去(新命令)
git switch -c add-weather  # 新建并切过去(一招合并)
git switch main            # 回主干
git branch -d add-weather  # 删除(已合并才允许)

旧教程常见 git checkout,等价于 switch(更古老但兼容性更强),两者皆可。

4.3 实操理解分支

git switch -c test-branch
echo "实验代码" >> a.txt
git add . && git commit -m "feat: 实验功能"

git switch main          # 回来!
cat a.txt                # 工作区没有「实验代码」!
git switch test-branch
cat a.txt                # 又有了!

你会看到:同一个文件在两条分支上自由切换版本——就像多个世界平行。

4.4 分支命名习惯

类型 命名
新功能 feat_天气插件
修 bug fix_首页白屏
文档 docs_部署说明

(本博客 README 的贡献流程写的就是:新建 feat_xxx 分支。)

4.5 必懂的 HEAD

HEAD 是「你现在站在哪」的指针(不是分支的头部那么抽象,就指当前检出的位置)。git log 输出里 HEAD -> main 就是说:你这条 commit 属于 main 的最新位置。

4.6 动手改

  1. 从 main 拉出 feat_readme 分支,改一行提交,切回 main 看该行不在
  2. 在 main 再单独改一处 commit,制造「两条分支各有改动」
  3. 试着 git branch -d feat_readme(完成合并之前它会拒绝——下一章解决)

4.7 小结

  • 分支 = 平行世界;main 般保持「随时可发布」
  • switch -c 新建切换一步到位
  • HEAD 就是「我在哪」的标记

下一章:合并与冲突 🐸

📥 下载本章代码

ZIP 内含本章全部代码文件与说明,解压即用,与教程内容同步生成。