Git中git commit -m与git commit -a的适用场景及区别
git commit -m 与 git commit -a:区别及适用场景
这两个命令完全不能互换,核心作用和适用场景差异很大:
核心功能差异
git commit -m "<提交信息>":仅负责提交已经通过git add暂存的修改,同时用-m参数直接在命令行指定提交信息,无需打开编辑器。未暂存的修改(不管是已追踪文件的修改还是新增文件)都不会被提交。git commit -a:自动暂存所有已追踪文件的修改/删除操作(注意:新增文件不包含在内),然后触发提交流程,但不会自动填写提交信息——执行后会打开系统默认编辑器让你输入提交内容。
各自适用场景
用 git commit -m 的情况
- 你已经手动通过
git add选择了要提交的部分修改(比如只提交某几个文件的改动,不想提交其他已修改的文件),想快速完成提交,不想打开编辑器写信息。 - 新增了文件,已经用
git add把新增文件暂存好,需要附带提交信息完成提交。
用 git commit -a 的情况
- 你修改/删除了多个已追踪的文件,不想逐个执行
git add,想一次性把这些改动都暂存并提交。 - 注意:如果有新增文件,必须先单独执行
git add <新增文件名>,否则git commit -a不会处理新增文件。
补充:组合参数的用法
如果想同时完成「自动暂存已追踪文件修改」+「直接指定提交信息」,可以用组合参数 git commit -am "<提交信息>",这相当于先执行git add -u(暂存已追踪文件的修改/删除),再执行git commit -m。
内容的提问来源于stack exchange,提问作者j3ff
相关产品推荐
相关产品推荐

