阶段三:分支策略

第12课:GitHub Flow工作流

📖 课程概述

本课我们深入学习GitHub Flow。极简分支模型、PR工作流、审查清单。这是Git精通课程的第12课,通过本课学习你将掌握相关核心概念和实操技能,能够在实际项目中灵活运用。

🎯 学习目标

1. 核心规则

main永远可部署。这是本课的核心知识点之一,理解其原理和实操方法对掌握Git至关重要。

核心概念

在核心规则中,我们需要理解以下关键概念和操作方式。Git的设计哲学是让每个操作都有明确的语义和可预期的结果,掌握这些概念能帮助你更高效地使用Git。

$ # 核心规则相关命令
$ git status
On branch main
nothing to commit, working tree clean
💡 实用技巧:在使用核心规则相关功能时,建议先在测试仓库中练习,熟悉操作流程后再在正式项目中使用。错误操作可以通过git refloggit reset恢复。

2. 实操

分支→PR→审查→合并。这是本课的核心知识点之一,理解其原理和实操方法对掌握Git至关重要。

核心概念

在实操中,我们需要理解以下关键概念和操作方式。Git的设计哲学是让每个操作都有明确的语义和可预期的结果,掌握这些概念能帮助你更高效地使用Git。

$ # 实操相关命令
$ git status
On branch main
nothing to commit, working tree clean
💡 实用技巧:在使用实操相关功能时,建议先在测试仓库中练习,熟悉操作流程后再在正式项目中使用。错误操作可以通过git refloggit reset恢复。

3. PR最佳实践

检查清单/描述模板。这是本课的核心知识点之一,理解其原理和实操方法对掌握Git至关重要。

核心概念

在PR最佳实践中,我们需要理解以下关键概念和操作方式。Git的设计哲学是让每个操作都有明确的语义和可预期的结果,掌握这些概念能帮助你更高效地使用Git。

$ # PR最佳实践相关命令
$ git status
On branch main
nothing to commit, working tree clean
💡 实用技巧:在使用PR最佳实践相关功能时,建议先在测试仓库中练习,熟悉操作流程后再在正式项目中使用。错误操作可以通过git refloggit reset恢复。

4. vs Git Flow

简单/适合Web/SaaS。这是本课的核心知识点之一,理解其原理和实操方法对掌握Git至关重要。

核心概念

在vs Git Flow中,我们需要理解以下关键概念和操作方式。Git的设计哲学是让每个操作都有明确的语义和可预期的结果,掌握这些概念能帮助你更高效地使用Git。

$ # vs Git Flow相关命令
$ git status
On branch main
nothing to commit, working tree clean
💡 实用技巧:在使用vs Git Flow相关功能时,建议先在测试仓库中练习,熟悉操作流程后再在正式项目中使用。错误操作可以通过git refloggit reset恢复。

5. 适用场景

持续部署项目。这是本课的核心知识点之一,理解其原理和实操方法对掌握Git至关重要。

核心概念

在适用场景中,我们需要理解以下关键概念和操作方式。Git的设计哲学是让每个操作都有明确的语义和可预期的结果,掌握这些概念能帮助你更高效地使用Git。

$ # 适用场景相关命令
$ git status
On branch main
nothing to commit, working tree clean
💡 实用技巧:在使用适用场景相关功能时,建议先在测试仓库中练习,熟悉操作流程后再在正式项目中使用。错误操作可以通过git refloggit reset恢复。

✅ 实机验证

$ git version
git version 2.43.0
$ git log --oneline -3
a163589 v3: introduced bug
2a5802e v2: good
c02b492 v1: good
✅ 验证通过:Git命令执行正常

🤔 常见问题

Q1: 核心规则的最佳实践是什么?

理解底层原理,不要只停留在命令层面。动手实践是掌握Git的最佳方式。

Q2: 操作失误如何恢复?

使用git reflog找到之前的提交,然后用git reset --hard恢复。几乎所有Git操作都可以撤销。

Q3: 团队协作中需要注意什么?

保持频繁沟通,避免长期不合并的分支。所有合并通过Pull Request进行代码审查。

📝 练习

  1. 创建测试仓库,实践核心规则相关操作
  2. 尝试实操的完整流程
  3. 模拟错误场景,练习恢复操作
  4. 与同学协作,练习PR最佳实践
  5. 记录遇到的问题和解决方案

🏆 成就解锁

📚 本课小结

关键要点

在本课中,我们系统学习了核心概念和实操技能。关键要点:

延伸阅读

命令速查表

命令功能常用选项
git init初始化仓库
git clone克隆远程仓库--depth,--branch
git add暂存更改-p,-A
git commit提交-m,--amend,-a
git status查看状态-s
git log查看历史--oneline,--graph
git diff查看差异--staged,--stat
git branch分支管理-d,-a,-v
git merge合并分支--no-ff,--abort
git rebase变基-i,--continue,--abort
git stash暂存工作pop,list,-u
git tag标签管理-a,-d,-l
git push推送到远程-u,--force-with-lease
git pull拉取并合并--rebase
git fetch拉取不合并
git remote远程仓库管理-v,add
git reset重置--soft,--mixed,--hard
git reflog引用日志
git cherry-pick挑选提交-x,-n
git bisect二分查找start,run
git blame行级追溯-L
git worktree工作树管理add,list,remove
git lfs大文件管理track,install

🎬 实战案例

假设你正在开发一个Web应用,需要处理以下场景:创建功能分支、提交更改、合并到主分支。以下是完整的命令流程:

$ git checkout -b feature/new-api
$ echo "API endpoint" > api.py
$ git add api.py
$ git commit -m "feat: add new API endpoint"
$ git checkout main
$ git merge --no-ff feature/new-api
$ git branch -d feature/new-api
$ git push origin main

这个流程展示了从创建分支到合并删除的完整过程。注意--no-ff确保保留分支信息,-d删除已合并分支。

⚠️ 常见陷阱