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

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

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

学习

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

更多

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

© 2026 CodeRoadMap

津ICP备2026012044号-1·津公网安备12011002026155号·coderoadmap@126.com
GitHub 协作进阶/课时/分支与变基
RawBlame
课时目录12 节

GitHub 协作进阶

  1. 01GitHub 路线图概览
  2. 02账号与 Profile
  3. 03仓库管理
  4. 04提交与历史
  5. 05分支与变基
  6. 06远程与 Fork
  7. 07Pull Request
  8. 08Issues 协作
  9. 09GitHub Actions
  10. 10组织与团队
  11. 11Pages 与静态站
  12. 12综合练习

分支与变基

rebase、squash、cherry-pick、detached-head。

35 分钟

分支与变基

分支让多人并行开发;rebase、squash、cherry-pick 是整理历史、挑选变更的高级工具。本课对应 git-github 路线图 的 rebase、squash、cherry-pick、detached-head 节点。

基础 git branch / merge 见 git-essentials;GitHub 上 PR 可选择 Squash and merge、Rebase and merge。

学习目标

  • 使用 git rebase 把 feature 分支接到最新 main 上
  • 理解 squash merge 与线性历史的利弊
  • 会用 cherry-pick 摘取单个 commit;识别 detached HEAD

Rebase 更新 feature 分支

git switch main
git pull origin main
git switch feature/login
git rebase main
# 若有冲突:改文件 → git add → git rebase --continue
git push --force-with-lease origin feature/login

黄金法则: 不要 rebase 已合并或他人基于其开发 的公共分支;只 rebase 自己的 feature 分支。

Squash 合并

本地把多个 commit 压成一个:

git switch feature/login
git rebase -i main
# 在编辑器里把后几条 pick 改成 squash 或 fixup

GitHub PR 合并选 Squash and merge:main 上只留一条 commit,历史干净;丢失中间 commit 粒度,适合小功能或 WIP 很多的分支。

Cherry-pick

把指定 commit 应用到当前分支:

git switch hotfix/prod
git cherry-pick abc1234
git cherry-pick def5678..ghi9012   # 范围(不含起点)

场景:main 上某 fix 需要同步到 release 分支,又不想 merge 整分支。

Detached HEAD

git checkout abc1234   # 或 git switch --detach abc1234
# HEAD detached at abc1234

此时不在任何分支上,新 commit 可能「悬空」丢失。若要保留:

git switch -c experiment-from-abc

或切回分支:git switch main。

GitHub 上的分支视图

Branches 页看活跃/已合并分支;Insights → Network 看图形。清理已合并分支:

git branch -d feature/login
git push origin --delete feature/login

练习

  • 在 feature 分支上 rebase 最新 main,解决一次故意冲突
  • 用 git rebase -i squash 3 个 commit 为 1 个
  • 体验 detached HEAD:git switch --detach HEAD~2,再建分支保存
  • 小结

    Rebase 整理线、Squash 简化史、Cherry-pick 摘单粒。 下一课远程管理、Fork 与从 fork 提 PR。

    加载本节练习…
    ← 上一课提交与历史下一课 →远程与 Fork