到这里,我们已经分别学习了 Branch、Commit、Push、Pull Request、Issue 和 CI/CD。最后,我们把这些内容连起来,看看一个完整但并不复杂的 GitHub 开发流程是什么样的。
假设团队正在开发一个网站,有人发现登录按钮在手机上无法正常工作,于是在 GitHub 中创建了一个 Issue:
#42 Fix login button on mobile现在你负责解决这个问题。
第一步:更新本地 main
开始开发之前,先确保本地 main 是最新的:
git switch main
git pull这样可以避免从过旧的代码开始工作。
第二步:创建 Branch
针对这个 Issue 创建一个新的 Branch:
git switch -c fix/mobile-loginBranch 名能够说明这个 Branch 的用途。
现在开发关系大致是:
main
\
fix/mobile-login第三步:修改代码
接下来正常修改项目文件。
例如你发现问题来自:
login.css修改完成后,先在 VS Code 中查看 Diff,确认没有无关修改。
然后:
git status检查当前状态。
第四步:Add 和 Commit
确认修改没有问题后:
git add .然后创建 Commit:
git commit -m "Fix mobile login button"如果任务需要多次修改,也可以继续创建多个 Commit。
例如:
Fix mobile login button
Add mobile login test
Improve login button spacing第五步:Push Branch
第一次 Push:
git push -u origin fix/mobile-login现在 GitHub 上就有了这个 Branch。
第六步:创建 Pull Request
在 GitHub 中创建 Pull Request:
base: main
compare: fix/mobile-login标题可以是:
Fix mobile login button描述中可以写:
Fixes #42
The login button was covered by another element on small screens.
This PR updates the mobile layout and adds a test for the issue.其中:
Fixes #42会把 PR 和 Issue 连接起来。
第七步:等待 Code Review 和 CI
PR 创建后,GitHub Actions 可能自动运行:
Lint
Tests
Build与此同时,其他开发者可以进行 Code Review。
假设测试失败,GitHub Actions 显示:
1 failing check你查看日志后发现需要进一步修改。
回到本地 Branch:
git switch fix/mobile-login修改后:
git add .
git commit -m "Fix mobile login test"
git push原来的 Pull Request 会自动更新,GitHub Actions 也会重新运行。
第八步:Merge
当 Reviewer 确认代码没有问题,并且:
All checks have passed就可以 Merge Pull Request。
Merge 后:
fix/mobile-login → main
因为 PR 中写了:
Fixes #42Issue #42 也可以自动关闭。
第九步:更新本地并删除 Branch
GitHub 上的 main 已经更新,但你的本地 main 还需要获取最新代码:
git switch main
git pull然后可以删除已经完成的本地 Branch:
git branch -d fix/mobile-login这样整个任务就完成了。
把完整流程放在一起
可以把这个流程概括成:
发现问题 → 创建 Issue → 更新 main → 创建 Branch → 修改代码 → 查看 Diff → git add → git commit → git push → 创建 Pull Request → Code Review + CI 自动检查 → 修复问题并继续 Push → Merge → 关闭 Issue → 更新本地 main → 删除 Branch
这看起来步骤很多,但真正每天需要重复的 Git 命令其实并不复杂。
开始工作:
git switch main
git pull
git switch -c feature/my-feature完成修改:
git status
git add .
git commit -m "Describe the change"
git push -u origin feature/my-feature然后大部分操作就转移到了 GitHub 页面中:
Pull Request
Code Review
CI
MergeMerge 后回到本地:
git switch main
git pull
git branch -d feature/my-feature对于基础 Git 和 GitHub 使用来说,掌握这套流程已经足够应对很多真实开发任务。
你现在已经掌握了什么?
完成这个教程后,你已经不只是会几个 Git 命令,而是理解了一套完整的开发流程。
你知道如何创建或 Clone Repository,如何使用 Add 和 Commit 记录修改,如何使用 Branch 隔离开发工作,也知道如何通过 Push 和 Pull 在本地与 GitHub 之间同步代码。
同时,你已经了解 GitHub 上最常见的协作方式,包括 Issue、Pull Request、Code Review 和 GitHub Actions。
整个教程最核心的流程可以最终浓缩成:
Issue → Branch → Edit → Add → Commit → Push → Pull Request → Review + CI → Merge
不需要一次记住 Git 的所有命令。真正重要的是理解这些步骤之间的关系,然后在实际项目中不断使用。随着使用次数增加,这些操作会逐渐变成非常自然的开发习惯。
知识测验
练习
Issue #42 要求为登录表单增加密码长度验证。请设计从更新 main 到最终清理 Branch 的完整流程,包括 Branch 名称、命令、PR 内容、CI/Review 和 Merge 后操作。