Git怎么暂存并提交代码

冬敏酱_9782

冬敏酱_9782

2026-11-15

978人浏览

原创

git add . 添加未跟踪、已修改、已删除文件(忽略.gitignore);-u 仅添加已跟踪的修改/删除文件;-A 等价于两者之和。日常推荐用 -u,新增文件时再用 . 并先 git status 确认。

git怎么暂存并提交代码

git add 怎么选:.、-u、-A 三个参数的区别

很多人一上来就 git add .,结果把不该提交的文件(比如 node_modules/、.env、编译产物)也加进去了。关键不是“能不能加”,而是“该加什么”。

git add . 会递归添加当前目录下所有「未跟踪 + 已修改 + 已删除」的文件,但不包括被 .gitignore 显式忽略的——前提是 .gitignore 已生效(即那些文件之前没被 Git 跟踪过)。

git add -u 只添加「已跟踪且被修改/删除」的文件,完全跳过新创建的未跟踪文件。适合日常改代码后想只提交变更,不带新增文件。

git add -A 等价于 git add . + git add -u,即覆盖全部状态(新、改、删),但实际和 . 在绝大多数场景下行为一致,没必要刻意换。

建议日常用 git add -u;初始化或补提新文件时才用 git add .,并务必先 git status 确认列表。

git commit -m 提交前必须检查的三件事

提交不是终点,而是协作的起点。很多 push 失败、CI 报错、同事拉不到新逻辑,根源都在这一步没做对。

  • 运行 git status,确认暂存区里只有你真想提交的文件(尤其注意有没有误加的二进制文件或日志)
  • 运行 git diff --cached,看暂存区里的改动是否和预期一致(比如是否漏掉了某个关键 if 分支的修复)
  • 提交信息别写 update 或 fix bug 这种空泛描述;要说明「改了什么 + 为什么改」,例如:fix: prevent null pointer in UserAuthService#login when token is expired

跳过暂存区直接提交?慎用 git commit -a

git commit -a -m"xxx" 看起来省事,但它只会自动 stage 所有「已跟踪」文件的修改和删除,完全不管新文件。也就是说:

如果你刚加了一个 utils/date-format.js,用 -a 是不会把它带上提交的——你会以为提交成功了,结果别人 git clone 后直接报 Module not found。

git-push
git-push

自动用 git 提交代码并推送到远程仓库。当用户输入 `/gitpush` 时触发此技能。功能包括:自动暂存所有更改、自动生成提交信息、自动提交到本地仓库、自动推送到远程分支。成功后报告提交状态、文件数量和耗时。

下载

更隐蔽的问题是:它绕过了 git add 的显式确认环节。你没法在暂存前用 git diff 逐个核对每个文件,容易把调试用的 console.log 或临时注释一起推上去。

除非你非常确定当前只有已跟踪文件的修改,且已反复验证过 diff,否则不要用 -a。

push 前发现暂存错了?用 git reset 回退最安全

刚 git add . 完,git status 一看发现多了两个不该提交的配置文件,这时候别删文件、别关终端,直接用 git reset HEAD 撤出暂存区就行。

常见操作:

  • 撤单个文件:git reset HEAD config.local.yml
  • 撤所有暂存(回到修改后未暂存状态):git reset(不带参数,默认作用于 HEAD)
  • 如果已经 commit 了但还没 push,可以用 git reset --soft HEAD~1 回退到暂存区,保留工作区改动

注意:git reset --hard 会同时丢弃工作区修改,除非你明确想放弃全部本地改动,否则别碰。

真正卡住人的从来不是命令记不住,而是不知道哪一步该停、该看、该反悔。每次 add 后多敲一次 git status,比事后花半小时排查 merge conflict 划算得多。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

git提交代码 git

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
自建git服务器
自建git服务器

git服务器是目前流行的分布式版本控制系统之一,可以让多人协同开发同一个项目。本专题为大家提供自建git服务器相关的各种文章、以及下载和课程。

2023.07.05

7619

9

git和svn的区别
git和svn的区别

git和svn的区别:1、定义不同;2、模型类型不同;3、存储单元不同;4、是否拥有全局版本号;5、内容完整性不同;6、版本库不同;7、克隆目录速度不同;8、分支不同。php中文网为大家带来了git和svn的相关知识、以及相关文章等内容。

2023.07.06

2100

6

git撤销提交的commit
git撤销提交的commit

Git是一个强大的版本控制系统,它提供了很多功能帮助开发人员有效地管理和控制代码的变更,本专题为大家提供git 撤销提交的commit相关的各种文章内容,供大家免费下载体验。

2023.07.24

1254

5

git提交错误怎么撤回
git提交错误怎么撤回

git提交错误撤回的方法:git reset head^:撤回最后一次提交,恢复到提交前状态。git revert head:创建新提交,内容与之前提交相反。git reset :使用提交的 sha-1 哈希撤回指定提交。交互式舞台区:标记要撤回的特定更改,然后提交,排除已撤回更改。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.04.09

4917

7

git怎么对比两个版本的文件内容
git怎么对比两个版本的文件内容

要对比两个版本的 git 文件,请使用 git diff 命令:git diff 比较工作树和暂存区之间的差异。git diff 比较两个提交或标签之间的差异。git diff 输出显示差异块,其中 + 表示添加的行,- 表示删除的行, 表示修改的行。可使用 gitkraken、meld、beyond compare 等可视化工具更直观地查看差异。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.04.09

4901

6

Go-Zero API开发使用教程
Go-Zero API开发使用教程

本专题聚焦Go-Zero的API开发,拆解.api描述文件的语法结构、路由与分组定义、参数绑定与校验规则,说明统一响应体、JWT鉴权、跨域与接口文档生成的落地方式,并给出网关聚合与接口测试的实践建议。

2026.11.12

40

15

Go-Zero安装与goctl环境配置教程
Go-Zero安装与goctl环境配置教程

本专题围绕Go-Zero的安装与工具链配置展开,讲清Go版本要求、goctl安装方式、代理镜像、protoc依赖与环境变量设置,说明多版本共存、升级回退与CI流水线安装的做法,并整理安装阶段的常见报错与验证步骤。

2026.11.12

40

15

Go-Zero零基础入门教程
Go-Zero零基础入门教程

本专题整理Go-Zero的入门知识,从框架定位、环境准备到跑通第一个API服务,讲清目录分层、配置加载、日志与中间件的基本用法,并对比Gin、Kratos的差异,帮助Go开发者建立整体认知,判断它是否适合当前项目。

2026.11.12

20

15

Postman身份认证怎么配置
Postman身份认证怎么配置

本专题从实际API接口调试场景出发,讲解Postman身份认证的完整配置流程,包括常见认证协议介绍、授权参数设置、访问令牌填写、OAuth 2.0授权及认证失败排查,帮助用户正确完成接口授权与访问验证。

2026.11.06

140

12

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Postman Native Git工作流指南
Postman Native Git工作流指南

共0课时 | 0人学习

vscode手册
vscode手册

共0课时 | 0人学习

Git 教程
Git 教程

共21课时 | 8.2万人学习