到这一节为止,我们已经分别学过 git pull、Branch、git add、git commit 和 git push。真正工作时,这些命令通常不会单独出现,而是组合成一套重复使用的开发流程。
假设你正在参与一个 GitHub 项目,并准备开发一个新的搜索功能。一个比较常见的流程可以从 main 开始。
首先,切换到 main:
git switch main然后获取远程最新代码:
git pull这样做的目的,是确保你从当前最新版本开始开发,而不是从几天前的旧代码开始。
创建自己的开发 Branch
获取最新代码后,创建一个新的 Branch:
git switch -c feature/search现在你的工作会发生在:
feature/search而不是直接修改 main。
可以用:
git branch确认当前 Branch:
* feature/search
main修改并检查代码
接下来就可以正常开发,例如修改:
search.js
search.html修改完成后,可以先在 VS Code 的 Source Control 中查看 Diff,确认自己到底修改了哪些内容。
然后运行:
git status进一步检查文件状态。
如果一切正确,就可以加入暂存区:
git add .再检查一次:
git status确认准备进入 Commit 的文件没有问题。
创建 Commit
接下来创建 Commit:
git commit -m "Add search feature"如果开发任务比较大,不需要等所有功能全部做完才 Commit。一个 Feature Branch 完全可以包含多个清晰的小 Commit,例如:
Add search input
Add search API request
Handle empty search results
Fix search loading state相比一个非常大的 Commit,这种历史通常更容易理解。
Push Branch 到 GitHub
完成 Commit 后,可以把 Branch 上传到 GitHub。
第一次:
git push -u origin feature/search之后继续修改并 Commit 时,就可以直接:
git push此时 GitHub 上就会有:
feature/search这个 Branch。
下一步通常不是直接 Merge 到 main,而是在 GitHub 上创建 Pull Request,让其他人 Review 代码并运行自动检查。
后面的协作内容会详细介绍 Pull Request。
一个完整的日常流程
把前面的步骤放在一起,大致就是:
1. 切换到 main → 2. Pull 最新代码 → 3. 创建 Feature Branch → 4. 修改代码 → 5. 查看 Diff → 6. git add → 7. git commit → 8. git push → 9. 在 GitHub 创建 Pull Request
对应命令可能是:
git switch main
git pull
git switch -c feature/search开发完成后:
git status
git add .
git commit -m "Add search feature"
git push -u origin feature/search这已经非常接近真实团队中的基础 Git 工作流程。
知识测验
如果任务还没完成怎么办?
不需要因为功能还没有完全结束就一直不 Commit。
例如你正在开发一个较大的支付功能,可以分成多个 Commit:
Add payment form
Add payment validation
Connect payment API
Handle payment errorCommit 的重点不是表示“整个功能已经完成”,而是记录一个清晰、有意义的代码变化。
但是是否要 Push 未完成代码,需要根据团队习惯决定。很多团队允许把未完成 Branch Push 到 GitHub,因为它可以作为远程备份,也方便其他开发者查看进度。
不要直接在 main 上做所有开发
对于自己的小练习项目,直接在 main 上修改并不会造成严重问题。
但在团队开发中,更常见的方式是:
main → 创建 Branch → 开发 → Push → Pull Request → Merge 回 main
这样 main 可以尽量保持稳定,而未完成的功能会留在各自的 Branch 中。
保持 Commit 清楚
除了正确使用命令,良好的 Commit 习惯也会让团队协作更轻松。
例如下面这些 Commit Message 比较容易理解:
Add login validation
Fix profile image upload
Update search API endpoint
Remove unused payment code而下面这些就不太有帮助:
update
fix
new
test
final当项目有几百甚至几千个 Commit 时,清晰的 Commit Message 会非常有价值。
练习
你准备修复用户头像无法更新的问题。请给出 Branch 名称,并写出从更新 main、创建 Branch、修改后检查、Commit 到 Push 的完整命令模板。
一个最常用的流程模板
对于刚开始学习的人,可以先记住下面这套模板:
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之后继续在同一个 Branch 开发:
git add .
git commit -m "Another change"
git push最后去 GitHub 创建 Pull Request。
这套流程不包含复杂的 Git 操作,但已经足够覆盖很多日常开发任务。