[git]git add,git commit,git push(作用和区别)

1,888 阅读2分钟

三个指令是 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

⚠️ 重要注意事项

  1. git add 很灵活:可以多次add,最后一次性commit
  2. git commit 要写清晰的消息:方便日后查看历史
  3. git push 前要先pull:避免和别人冲突
    git pull origin main  # 先拉取最新代码
    git push origin main  # 再推送自己的代码
    

🔄 完整流程理解

想象你在写一本书:

  • git add = 标记要保存的章节
  • git commit = 保存这一版的草稿到抽屉
  • git push = 把草稿发给编辑(远程仓库)

这样理解对吗?每个指令都像是一个检查点,确保代码管理有序可控。