这三个指令是 Git 工作流程的核心,它们将本地改动一步步推送到远程仓库。让我用一个清晰的比喻来解释:
📦 三部曲流程
工作区 (Working Directory)
↓ git add
暂存区 (Staging Area)
↓ git commit
本地仓库 (Local Repository)
↓ git push
远程仓库 (Remote Repository)
🔍 详细解释每个指令
1. git add - 选取要打包的文件
git add 文件名 # 添加单个文件
git add . # 添加所有修改
git add *.js # 添加所有js文件
作用:
- 将工作区的修改标记为"准备提交"
- 把文件放入"暂存区"(想象成一个打包箱)
- 可以选择性提交(只提交部分文件)
类比:去超市购物,把要买的商品放入购物车 🛒
2. git commit - 打包并贴标签
git commit -m "修复了登录bug" # 提交并写描述
作用:
- 将暂存区的所有改动永久保存到本地仓库
- 创建一条版本记录(有唯一的ID和时间戳)
- 需要写提交信息说明这次改动的目的
类比:结账时把购物车里的商品打包,贴上订单号和备注 📦
3. git push - 发货到仓库
git push origin main # 推送到远程的main分支
git push origin feature # 推送到远程的feature分支
作用:
- 将本地仓库的提交记录推送到远程仓库(如GitHub)
- 同步代码,让团队其他人能看到你的改动
- 需要网络连接
类比:把打包好的包裹寄到仓库/分发给其他人 🚚
📊 对比表格
| 指令 | 作用范围 | 是否需要网络 | 可撤销性 | 比喻 |
|---|---|---|---|---|
git add | 工作区 → 暂存区 | ❌ 不需要 | 容易撤销 | 把商品放入购物车 |
git commit | 暂存区 → 本地仓库 | ❌ 不需要 | 可撤销但复杂 | 打包商品并贴标签 |
git push | 本地仓库 → 远程仓库 | ✅ 需要 | 需要强制推送覆盖 | 发货到中央仓库 |
🎯 实际工作流程示例
# 1. 修改了代码后,先查看状态
git status
# 2. 选择要提交的文件
git add index.html style.css
# 3. 提交到本地仓库
git commit -m "更新首页样式和布局"
# 4. 推送到远程仓库
git push origin main
# 5. 查看推送结果
git log --oneline
⚠️ 重要注意事项
git add很灵活:可以多次add,最后一次性commitgit commit要写清晰的消息:方便日后查看历史git push前要先pull:避免和别人冲突git pull origin main # 先拉取最新代码 git push origin main # 再推送自己的代码
🔄 完整流程理解
想象你在写一本书:
git add= 标记要保存的章节git commit= 保存这一版的草稿到抽屉git push= 把草稿发给编辑(远程仓库)
这样理解对吗?每个指令都像是一个检查点,确保代码管理有序可控。