Git add、git commit与git push的区别及适用场景咨询
Git add、git commit、git push 核心区别与适用场景
这三个命令对应Git从工作区到远程仓库的递进式版本控制流程,核心作用完全不同:
一、git add:标记"待提交内容"
核心逻辑
把你工作区里的改动(新增、修改、删除的文件)转移到暂存区——相当于给Git列了一份"下一次要打包的文件清单",不会生成任何版本记录。
常用场景
- 写完某个功能的相关代码后,精准选择要提交的文件(比如只提交
pay-service.js和pay.css,忽略临时测试文件) - 新增文件后,第一次必须用
git add让Git开始追踪这个文件 - 用
git add -p可以逐段选择代码片段暂存,适合只提交部分修改的场景(比如同一个文件里修复了两个bug,先提交其中一个) - 谨慎使用
git add .,它会暂存当前目录下所有未追踪和已修改的文件,容易把日志、缓存这类垃圾文件也加进去
二、git commit:生成本地版本快照
核心逻辑
把暂存区里的所有改动打包成一个带唯一ID的提交记录,存入本地仓库。每个commit都需要清晰的提交信息,描述这次改动的目的——这一步完全是本地操作,和远程仓库无关。
常用场景
- 完成一个独立功能、修复一个bug,或者完成一次有意义的代码调整后,用commit固化当前状态
- 开发到一个节点,想保存当前进度,方便后续回滚、对比或分支合并
- 快速提交用
git commit -m "修复支付回调超时问题";需要详细说明改动背景、方案时,直接用git commit打开编辑器写多行提交信息
三、git push:同步到远程仓库
核心逻辑
把本地仓库的提交记录推送到远程仓库(比如GitHub、GitLab),让团队其他成员能获取你的改动。只有执行push后,你的代码才会被其他人看到或拉取。
常用场景
- 本地完成多个commit后,同步到远程仓库,保持团队代码一致
- 完成功能开发后,push到远程分支发起代码评审(PR/MR)
- 修复紧急bug后,push到远程让运维可以部署修复版本
- 注意:push前建议先执行
git pull拉取远程最新代码,避免冲突;如果有冲突,必须在本地解决后再push
完整流程示例
比如你修复了用户头像上传的尺寸问题:
- 修改
upload.js和avatar.css - 执行
git add upload.js avatar.css,把改动加入暂存区 - 执行
git commit -m "修复头像上传后尺寸变形问题",生成本地提交 - 执行
git pull origin main,拉取远程最新代码确认无冲突 - 执行
git push origin main,把改动同步到远程主分支
内容的提问来源于stack exchange,提问作者Daniel
相关产品推荐
相关产品推荐

