路线图对照
这一课你将能做到
- 对照 git-github-beginner 路线图,完整梳理你已掌握的所有节点
- 明确 beginner 与 essentials 两个层级的边界,知道下一步学什么
- 把 Git 知识映射到本站其他技术栈(Java、Spring、MySQL)的开发流程中
为什么要学
学了 10 节课,你需要一张完整的「地图」来确认自己没有遗漏。这一课不是新内容,而是一次全景复盘——把你学过的每个命令、每个概念,放回它在整个技术版图中的位置。同时也为你指明下一阶段(git-github-essentials)的方向。
先建立图像
本 track 覆盖的知识地图:
Git 基础(第 1-3 课)
├── 三大区域:工作区 / 暂存区 / 仓库
├── 核心命令:add / commit / log / diff / restore / switch
├── 分支模型:分支即指针、HEAD、merge、stash、tag
└── 撤销与恢复:reset / revert / reflog
GitHub 协作(第 4-5 课)
├── 远程操作:clone / push / pull / fetch
├── 认证方式:SSH / Token
└── Fork 模型:origin / upstream / PR
工作流与规范(第 6-9 课)
├── 分支策略:GitHub Flow / Git Flow
├── PR 流程:描述模板 / review / CI
├── Issues 管理:Label / Milestone / Closes
└── 团队文化:Code Review / 冲突协调
安全底线(第 10 课)
├── .gitignore 配置
├── 环境变量管理密钥
└── 泄露应急:BFG / filter-repo / 凭证轮换
跟着做
步骤 1:打开本站路线图自查
访问 /roadmaps/git-github-beginner,逐个节点对照以下清单打钩:
基础必会(全部应该 ✅):
GitHub 协作(全部应该 ✅):
工作流(至少 80% ✅):
知道如何处理 review 反馈步骤 2:识别薄弱环节
| 未掌握节点 | 回炉课时 |
|---|
| 三大区域、HEAD | ghbb-intro |
| restore/reset/revert | ghbb-basics |
| merge/rebase/stash | ghbb-git |
| push/pull/远程跟踪 | ghbb-github |
| Fork/PR/upstream | ghbb-collab |
| 分支模型选择 | ghbb-workflow |
| PR 描述与审查 | ghbb-pr |
| Issue 与里程碑 | ghbb-issues |
| Code Review 礼仪 | ghbb-team |
| 密钥管理 | ghbb-security |
步骤 3:把 Git 融入日常开发流
以本站 java-nav 为例,一次完整的功能开发应该是:
# 1. 接到 Issue #23:为课程页添加搜索功能
git switch main && git pull
# 2. 开功能分支
git switch -c feature/course-search
# 3. 开发 + 小步提交
git commit -m "feat(course): 新增搜索 Controller"
git commit -m "feat(course): 实现搜索 Service 层"
git commit -m "test(course): 补充搜索接口测试"
# 4. 同步主干
git merge main
# 5. 推送并发 PR(描述里写 Closes #23)
git push -u origin feature/course-search
# 6. 通过 review、CI 绿、合并、删分支
git switch main && git pull
git branch -d feature/course-search
把这个流程练成肌肉记忆,你在任何公司都能立刻上手。
步骤 4:规划下一阶段(essentials 路线)
git-github-essentials 会深入这些主题:
- rebase 进阶:交互式 rebase 整理历史、squash、fixup
- cherry-pick 与 reflog 高级用法:从任何事故中恢复
- Git Hooks:pre-commit 钩子做自动检查
- GitHub Actions:CI/CD 自动化
- Git LFS:管理大二进制文件
- 子模块(submodule)与 monorepo:大型项目组织方式
讲清楚要点
- 路线图不是考试清单:不需要每个节点都 100% 精通,标记「见过」「用过」「熟练」三档即可。
- 工具是为流程服务的:学 Git 不是为了背命令,而是为了支撑团队协作流程。理解流程,命令自然记住。
- 本站项目就是最好的练习场:java-nav 的所有源码都在 GitHub,你可以 fork 它、改它、提 PR,把学到的每一招都用一遍。
- essentials 不等于更难:是把 beginner 的「会用」升级为「用好」,比如从「会 merge」升级到「会判断该 merge 还是 rebase」。
- 知识会过时,心智模型不会:具体命令可能改版(比如 checkout 拆成 switch/restore),但「三大区域」「分支即指针」这些底层模型是永恒的。
你可能会懵的地方
-
我需要把所有命令都背下来吗?
不需要。记住 20 个核心命令(add/commit/push/pull/switch/merge/log/diff/status/restore/stash 等)就够应付 95% 场景,剩下的查文档。
-
学完 beginner 能去面试吗?
能应对初级岗位。中高级岗位会问 rebase、submodule、Git Hooks 等 essentials 内容。
-
路线图上的节点我都要点亮吗?
不必一次全点亮。建议策略:核心节点(标记为必学的)先打通,边缘节点用到时再回头学。
-
学完 Git 下一步学什么?
和 Git 配套的技能:Linux 命令行、Shell 脚本、CI/CD(GitHub Actions)、Docker。这些都是工程师的「通用基础设施」。
-
我能不能跳过 essentials 直接干活?
能。beginner 已经覆盖日常工作 80% 场景。essentials 是「遇到复杂情况时」的武器库,可以边工作边补。
错法对照
| 错法 | 问题 | 正解 |
|---|
| 想一次掌握所有 Git 命令 | 记不住、容易挫败 | 掌握核心 20 个,其他用到再查 |
| 只看不练 | 学完就忘 | 每个命令至少在真实仓库敲 3 遍 |
| 卡住就死磕 | 浪费数小时 | 卡住 30 分钟就查文档/提问 |
| 不敢在真实项目用新学的命令 | 永远停留在练习 | 在 fork 的本站仓库里放心折腾 |
| 忽视 commit message 规范 | 历史无法追溯 | 养成「类型: 描述」习惯 |
卡点急救
- 学完全部课但感觉什么都没记住:正常。Git 是技能不是知识,必须通过反复实操内化。建议每天用 Git 管理一个真实项目,一个月后回头看会发现全都懂了。
- 不知道怎么判断自己是否掌握了某个节点:试着向别人(或对着空气)讲解这个知识点。讲不清楚就是没掌握。
- 路线图上的节点和课程内容对不上:路线图会持续迭代,课程内容跟随主流版本。发现不一致时以课程内容为准,并在 Issue 区反馈。
面试常问
-
你的 Git 学习路径是怎样的?
推荐答法:先掌握三大区域和核心命令(beginner),再在真实项目中应用 GitHub Flow,最后深入 rebase、Hooks、CI 集成(essentials)。强调「用过」比「学过」重要。
-
你怎么保证团队 Git 使用规范?
三层保障:CONTRIBUTING.md 写清分支模型与提交规范;pre-commit hook 自动检查代码风格;PR 模板 + 强制 review 把关入口。
-
Git 在你上一个项目中扮演什么角色?
准备一个具体案例:比如「我用 feature 分支 + PR 的方式独立完成了课程搜索模块,期间通过 rebase 保持历史整洁,通过 stash 处理了线上紧急 bug 的中断」。
自测三问
- 本 track 的 11 节课,你能画出它们之间的知识依赖图吗?
- 哪些节点是你「见过但没用过」的?计划怎么补齐?
- 如果明天去面试,你能用 Git 知识讲一个 3 分钟的项目故事吗?
小结一句话
路线图不是终点而是坐标系——知道自己在哪、要去哪,比记住每个命令更重要。
延伸
- 本站 Git 路线图
- 下一课:综合练习——用一次完整的 Fork + PR 流程,为本站提交你的第一个贡献。