CodeRoadMap
首页路线题库资源库文章社区
CodeRoadMap

程序员的学习成长路线图。内容免费开放,登录后可同步路线图与课时进度。

由 程序员柏风 独立维护 · 关于作者

学习

  • 路线图
  • 课程
  • 面试题
  • 文章
  • 我

更多

  • 资源
  • 社区
  • 关于作者
  • 内容说明

© 2026 CodeRoadMap

津ICP备2026012044号-1·津公网安备12011002026155号·coderoadmap@126.com
Git 版本控制入门/课时/分支创建与切换
RawBlame
课时目录8 节

Git 版本控制入门

  1. 01版本控制与 Git 是什么
  2. 02安装 Git 与首次配置
  3. 03创建仓库与第一次提交
  4. 04状态查看与提交历史
  5. 05分支创建与切换
  6. 06合并分支与冲突处理
  7. 07远程仓库与 push/pull
  8. 08日常协作工作流小结

分支创建与切换

25 分钟

分支创建与切换

分支让你在同一份代码上并行尝试不同方案:修 bug 不影响正在写的新功能,功能做完再合并回主线。

学习目标

  • 创建、切换、列出、删除分支
  • 理解 main 与功能分支的协作习惯
  • 知道「快进合并」与「三方合并」的直观区别(细节在下一课)

为什么需要分支

在 CodeRoadMap 里同时做「admin 样式优化」和「platform 关于页」时,理想状态是:

  • main 保持可部署
  • feature/admin-style 上改 admin
  • feature/about-page 上改 platform

各分支独立 commit,互不影响,完成后再合并。

基本命令

# 查看分支,* 为当前分支
git branch

# 新建分支(不切换)
git branch feature/login-ui

# 新建并切换
git checkout -b feature/login-ui
# Git 2.23+ 等价:
git switch -c feature/login-ui

# 切换到已有分支
git switch main

# 删除已合并的分支
git branch -d feature/login-ui

# 强制删除未合并分支(慎用)
git branch -D feature/login-ui

在分支上开发

git switch main
git switch -c feature/readme

echo "新功能说明" >> README.md
git add README.md
git commit -m "feat: add feature section to readme"

git switch main
cat README.md   # 没有「新功能说明」—— 改动只在 feature 分支

切回 feature/readme 又能看到改动。这就是分支:同一工作目录,不同历史线。

命名习惯

前缀用途示例
feature/新功能feature/article-editor
fix/修复fix/cors-x-request-id
docs/文档docs/git-course
chore/工具/构建chore/upgrade-next

本站开源协作时,分支名尽量短、可读、英文或拼音,避免空格。

查看分支关系

git log --oneline --graph --all

合并前你会看到 main 与 feature/* 从某 commit 分叉、各自向前。

常见错误

Q:切换分支时提示有未提交修改
→ 先 commit 或 stash(临时贮藏),再 switch。

git stash
git switch main
# 做完别的再切回来
git switch feature/readme
git stash pop

Q:在错误的分支上 commit 了
→ 未 push 时可用 git cherry-pick 把 commit 挪到正确分支(进阶),或记住:小步 commit、常看 。

git branch

练习

  • 从 main 创建 feature/practice,做 1 次 commit
  • 切回 main,确认文件内容与 feature 分支不同
  • 用 git log --graph --oneline --all 看分叉

小结

分支 = 独立开发线。 下一课把 feature 合并回 main,并处理两人改同一行时的冲突。

加载本节练习…
← 上一课状态查看与提交历史下一课 →合并分支与冲突处理