Git命令 git commit -am

2023-11-02

git commit -m与git commit -am的区别


使用git commit -am是不是就可以完全不使用git add命令呢?不是

理论

要了解git commit -m与git commit -am的区别,首先要明白它们的定义

字面解释的话,git commit -m用于提交暂存区的文件,git commit -am用于提交跟踪过的文件

[注意]git commit -am可以写成git commit -a -m,但不能写成git commit -m -a

定义中出现了暂存区、跟踪过的文件等术语,如果要理解它们,就需要了解Git的文件状态变化周期
在这里插入图片描述
 工作目录下面的所有文件都不外乎这两种状态:已跟踪(tracked)或未跟踪(untracked)。已跟踪的文件是指本来就被纳入版本控制管理的文件,在上次快照中有它们的记录,工作一段时间后,它们的状态可能是未更新(unmodified),已修改(modified)或者已放入暂存区(staged)

实例

下面以一个实例来进行说明

1、在项目文件夹中新增一个文件如’a.txt’时,该文件处于未跟踪状态(untracked)。未跟踪状态的文件是无法提交的
在这里插入图片描述
  2、接下来,使用git add a.txt,使其变成已跟踪状态(tracked)
在这里插入图片描述

3、这时,如果使用git commit -m 'add a.txt’就可以顺利提交了
在这里插入图片描述

4、但是,git commit -m 和 git commit -am的区别在哪里?在于a.txt文件修改之后的处理

下面,向a.txt添加内容’a’。可以看出,文件a.txt处于已跟踪(tracked),但未暂存状态(unstaged)
在这里插入图片描述

5、这时,如果使用git commit -m是无法提交最新版本的a.txt的,提交的只是最开始空内容的旧版本a.txt
在这里插入图片描述

6、而如果使用git commit -am,则可以省略git add a.txt这一步,因为git commit -am可以提交跟踪过的文件,而a.txt一开始已经被跟踪过了
在这里插入图片描述

总结

这两个命令的区别的关键就是git add命令

git add命令是个多功能命令,根据目标文件的状态不同,此命令的效果也不同:可以用它开始跟踪新文件,或者把已跟踪的文件放到暂存区,还能用于合并时把有冲突的文件标记为已解决状态等

我们需要用git add命令来跟踪新文件,但如果使用git commit -am可以省略使用git add命令将已跟踪文件放到暂存区的功能

【转载】
原作者:https://www.cnblogs.com/smile-fanyin/p/10827438.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Git命令 git commit -am 的相关文章

随机推荐

  • 浮点数——科学计数法、浮点数表示、加减运算和浮点数的使用

    目录 1 2浮点数 1 2 1 科学计数法 1 2 2 浮点数表示 1 符号位 2价码位 1 2 3 加减运算 1 2 4 浮点数的使用 1 2浮点数 浮点数是采用科学计数法来表示的 由符号位 有效数字 指数三部分组成 使用浮点数存储和计算
  • 性能测试------LoadRunner

    1 常见的性能问题 1 内存泄漏 软件运行的时候没有回收内存 导致内存越来越慢 2 CPU使用率达到了100 3 线程死锁 阻塞 造成系统运行越来越慢 4 查询的速度越来越慢 5 受外部系统的影响越来越大 2 为什么要进行性能测试 1 获取
  • three.js源码翻译及案例(五)-GLTFLoader.js

    写在前面 Three中的加载脚本很多 但是核心思想是差不多的 就是文件用文件解析器加载 图片用图片解析器加载 然后json转换为对象 但是由于gltf格式可以自己编辑所以有的源码参考意义不大 glb及拓展材质都没用上就还没有翻译 以后可能会
  • xcode APP 打包以及提交apple审核详细流程(新版本更新提交审核)

    最近项目到了最后的阶段 测试完一切ok后 准备打包以及提交 不料看到网上众教程 好多都是老版本的 现在IDE实现方式改了 那些方法好多都找不到 绕了一大圈 才搞明白流程 现在记录下来 以便朋友们查阅 开发环境 xcode4 4 1 ipho
  • 李胜溢9.5 : 最新黄金原油行情走势分析及布局操作指南。

    趋势价值交易 是所有投资者走向盈利的必经之路 没有捷径 也不要心存侥幸 任何一个投资者从初入市场 到走向盈利 都需要经历亏损再到保本再到盈利的过程 市场绝对不是投机者长久的天堂 一次的投机成功不代表可以善始善终 只有稳定不断的持续盈利才能成
  • pytorch seq2seq+attention机器翻译注

    准备深入学习一下神经网络的搭建方法的时候 选了机器翻译来试试 正好查了很多资料 发现pytorch里有例子 就结合自己的理解和探究记录一下 原文实现代码 https pytorch org tutorials intermediate se
  • Android Studio方法红色的解决办法

    前言 本人一共经历过以下几种飘红的情景 一 复制代码 很多方法的包没有导进来 这就是android studio和eclipse的差别 解决方法有两种 1 点击红色的方法 然后ALT Enter Import class 即可完成导入 2
  • Git错误non-fast-forward的解决方法

    目录 1 问题描述 2 分析问题 3 解决问题 3 1 先合并之前的历史 再进行提交 提倡使用 3 2 丢弃之前的历史 强推 谨慎使用 1 问题描述 当要push代码到git时 出现提示 git push origin master To
  • 数据库入门(SQL SEVER)之SQL语句删除单行数据,所有行数据,表和数据库

    1 删除单行数据 2 删除所有行数据 3 删除表和数据库 一 在该页面上直接单击右键选择删除 1 2选择 数据库 gt SSMSTest gt 表 右键单击直接删除整个表 连带着数据也删除了 不过要注意表有没有外键约束 有的话不能删除主表
  • 在windows和linux上传或下载文件

    一 使用xshell在windows和linux上传或下载文件 有个很简单的方法就是rz sz 1 工具安装 需要安装工具 yum install lrzsz 使用工具 安装的rz sz就是Linux Unix同Windows进行文件传输的
  • 关于解决VC运行C语言程序闪退的问题

    关于解决VS运行C语言程序闪退的问题 最近使用VS2017调试C语言控制台程序 一直出现程序正常运行结束就闪退 看不到控制台的的运行结果 经过查资料尝试 得到几种解决方法 1 在return 0 前加上getchar 利用getchar 函
  • K-最近邻法(KNN)简介

    K 最近邻法 K Nearest Neighbor KNN 最初由Cover和Hart于1968年提出 是一个在理论上比较成熟的分类算法 KNN是一类可用于分类或回归的技术 作为一个非参数学习算法 K 最近邻并不局限于固定数目的参数 我们通
  • ubuntu 22.04 国内镜像阿里云/163源/清华大学/中科大--转--已验证

    Ubuntu 22 04 LTS 五年长期支持版本 直到2027年4月 1 备份原配置 sudo cp etc apt sources list etc apt sources list bak 2 清华大学镜像 复制以下命令即可一键切换到
  • 深入 AXI4总线 (四):RAM 读取实战

    光说不练 云玩家 这篇文章中我们就通过访问一个 AXI4 接口的 RAM 的实际操作 加深我们对 AXI4 总线的理解 我们的实验平台是 ISE 14 7 以及 modelsim 10 2 RAM 的 ip 使用 ISE 的 block m
  • flex阶段总结

    关于从XML中读取到的中英文乱码 在flex应用程序中加入语句 flash system System useCodePage true 处理中文乱码 日期格式的修改 var datefamate DateFormatter new Dat
  • Logminer简介及应用

    背景 近期在研究OGG复制时 对于官方稳定中提到了11 2 0 4及以后的数据库出现了一种新的捕获日志的方法 integrated capture mode 该方法使用Log Mining Server捕获日志 故对于LogMiner进行了
  • c#使用钩子拦截鼠标键盘事件

    窗体本身带的键盘鼠标事件函数只能响应窗体自己的事件 窗体之外的事件是不会响应的 比如当窗体最小化的时候也响应就要用全局钩子拦截消息来处理了 大概过程就是在窗体初始化时加载钩子 等待事件消息 事件触发后调用响应函数处理 using Syste
  • java写的简单选票统计程序

    功能很简单的一个例子 和大家一起分享一下 同为java爱好者 一起学习进步哦 InputPerson java import java awt import java awt event import java util StringTok
  • 2020年蓝桥杯省赛-平面分割

    题目 题目链接 题解 计算几何 整理公式得 m m 1 1
  • Git命令 git commit -am

    git commit m与git commit am的区别 理论 实例 总结 使用git commit am是不是就可以完全不使用git add命令呢 不是 理论 要了解git commit m与git commit am的区别 首先要明白