git add 命令详解

article/2025/4/8 3:09:29

1. 前言
2. git add 基本操作
3. git add 命令参数
4. git add 背后做了什么

1. 前言


众所周知,git 中有工作区、暂存区、版本库三大组成部分

工作区: 电脑中能看到的目录,也就是写代码的地方

暂存区: 英文叫 stage 或 index。一般存放在 .git 目录下的 index 文件中,暂存区有时也叫做索引

版本库: 在工作区中有一个隐藏目录 .git,这个不算工作区,而是 git 的版本库

2. git add 基本操作


add 命令的作用就是将工作区的文件添加到暂存区

使用示例

 
  1. # 将某些文件提交到暂存区
  2. git add <file1> <file2>
  3. # 将某些目录提交到暂存区
  4. git add <folder1> <folder2>

3. git add 命令参数


-A, --all add changes from all tracked and untracked files 添加所有跟踪和未跟踪文件的更改

-A 参数会监控工作区的状态树,它会把工作区的所有变化提交到暂存区,包括修改(modified)、新文件(Untracked files)、删除的文件(deleted)。使用 . 在 git 2.x 也可以达到一样的效果,但在 git 1.x 中不同的是 . 不会监控删除的文件

在 git2.x 中,下面两种用法的效果完全相同

 
  1. git add .
  2. git add -A

-u, --update update tracked files 只更新已被跟踪文件

只监控已经被 add 的文件,也就是 tracked files,不会监控没有被跟踪的新文件

 
  1. git add -u

4. git add 背后做了什么


先说结论: git add 会在 .git/objects 目录下面创建一个目录和文件,并且在 .git/index 文件中添加一行内容

这里会说到 git cat-file 命令,虽然平时不怎么用,但是它能帮助我们理解 git add 背后到底做了什么

创建一个 git 仓库,用于查看 git add 背后做了什么操作

 
  1. $ git init
  2. $ echo 'hello git' >> 1.txt
  3. $ git add 1.txt
  4. $ .git/objects
  5. ├── 8d
  6. │ └── 0e41234f24b6da002d962a26c2495ea16a425f
  7. ├── info
  8. └── pack

执行 git add 后:

1、git 会将工作区中的文件使用 hash sha-1 算法得到 40 位的 blob 对象 hash 字符串文件,文件中存储的是文件类型和使用算法压缩后的内容,如果查看文件的原始内容,需要使用 git cat-file -p <hash>。这个文件存放在 .git/objects 目录下

 

2、git 会在 .git/index 文件中增加一行内容,就是 hash 值对应的文件名。此时就实现了文件名和内容相对应的操作

 
  1. # 查看暂存区中的文件名
  2. git ls-files
  3. # 查看暂存区中的文件更多信息
  4. git ls-files -s

100644 指的是文件权限,hash 字符串对应 .git/objects 目录下的文件

查看 hash 文件

 
  1. # 查看文件类型
  2. git cat-file -t <hash>
  3. # 查看文件内容
  4. git cat-file -p <hash>
  5. # 使用示例
  6. git cat-file -t 8d0e412
  7. git cat-file -p 8d0e412

git cat-file -t 查看文件类型的返回值

类型描述
blob存储的是工作区文件的内容
tree工作树
commit提交记录信息以及工作树

http://chatgpt.dhexx.cn/article/CkDAkZfi.shtml

相关文章

git命令详解( 四 )

此篇为git命令详解的第四篇&#xff0c;话不多说&#xff0c;我们直接上知识点好吧 git Push 偏离的工作 gitPush: 此命令负责将你的变更上传到指定的远程仓库&#xff0c;并在远程仓库上合并你的新提交记录。一旦 git push 完成, 你的朋友们就可以从这个远程仓库下载你分享的成…

常用git命令详解

常用git命令 前言&#xff1a; 原链接&#xff1a;生哥哥牛逼(破音) 不争气的生哥哥链接404了&#xff0c;害得我要重新整理 一、概念&#xff1a; 1.基本概念 工作区&#xff1a;就是你在电脑里能看到的目录。 暂存区&#xff1a;英文叫 stage 或 index。一般存放在 .gi…

【Git】常用命令详解(循序渐进,逐步分析)

目录 一、Git常用命令 1.1、设置用户签名 1.2、初始化本地库 1.3查看本地库状态 1.3、添加文件到暂存区 1.4、将暂存区文件添加文件到本地库 1.5、查看历史版本&#xff08;提交历史记录&#xff09; 1.6、修改文件 1.7、版本穿梭 一、Git常用命令 1.1、设置用户签名…

windows大多数的弹窗提示内容是可以复制的(我们主要用于报错内容复制粘贴去百度)

现在以记事本保存时候的弹窗为例&#xff0c;用鼠标点击弹窗的任意位置&#xff0c;然后CtrlC&#xff0c;然后在新的记事本中可以粘贴这个提示内容了。如下图粘贴效果 1.大多数弹窗适用 2.主要用于把“报错内容”复制粘贴去百度 找解决方案

vscode 编辑特效 文字爆炸效果插件

1、在vscode应用扩展商店下载Power Mode插件 2、在vscode最左下角打开设置 在搜索框输入settings.json {"files.autoSave": "off","workbench.colorTheme": "Visual Studio Light","[json]": {"editor.quickSuggestio…

初始C语言——完数问题

问题描述&#xff1a; 描述&#xff1a;一个数如果恰好等于它的因子之和&#xff08;除本身以外&#xff09;&#xff0c;这个数就成为“完数”。例&#xff1a;6的因子为1&#xff0c;2&#xff0c;3&#xff0c;而6123&#xff0c;因此6是完数。找出1000以内的所有完数。 代…

C语言_求完数

2020年9月5日 11:11:31 /*一个数如果恰好等于它的因子之和&#xff0c;这个数就称为“完数”。例如 61&#xff0b;2&#xff0b;3&#xff0c; 编程找出 1000 以内的所有完数。 */ 两种方法&#xff1a; 方法一的年代比较久远&#xff0c;而且算法思维比较复杂和抽象&#x…

1000以内完数c语言程序_C语言完数编程题目详解

首先看一下完数的概念&#xff1a;完数&#xff0c;即完美数&#xff0c;一个数如果恰好等于除它本身外的因子之和&#xff0c;这个数就称为完数。例如61&#xff0b;2&#xff0b;3.(6的因子是1,2,3) 题目概要&#xff1a;请写一个C语言程序&#xff0c;要求输入一个数字n输出…

C语言完数计算

完数定义&#xff1a;如果一个数等于它的因子之和 例如:6123 编程工具&#xff1a;codeblocks #include<stdio.h> #include<stdlib.h> #include<math.h> void main() {int sum;//所有因子的的和int arr[20] { 0 };//声明一个数组用来存储所有的因子int n;…

C语言入门——1000以内的完数

完数定义 如果一个数恰好等于它的真因子之和&#xff0c;则称该数为“完全数” [2] 。各个小于它的约数&#xff08;真约数,列出某数的约数&#xff0c;去掉该数本身&#xff0c;剩下的就是它的真约数&#xff09;的和等于它本身的自然数叫做完全数&#xff08;Perfect numbe…

C语言———求”完数“

一个数如果恰好等于它的因子之和&#xff0c;这个数就称为 "完数 "。例如61&#xff0b;2&#xff0b;3&#xff0c;编程找出1000以内的所有完数。 分析过程 所谓完数&#xff0c;就是其因子之和&#xff08;不包括自己本身&#xff09;等于其本身&#xff0c;称其…

[C语言] [试题详解] 求1000之内的所有 完数

题目>>> 一个数如果恰好等于它的因子之和&#xff0c;这个数就称为“完数”。 例如&#xff0c;6的因子为1、2、3&#xff0c;而6&#xff1d;1&#xff0b;2&#xff0b;3&#xff0c;因此6是“完数”。 编程序找出1000之内的所有完数&#xff0c;并…

车载行车记录仪EMC浪涌防护方案图

客户向东沃技术寻求帮助&#xff0c;具体事情是这样的&#xff1a;客户公司自己生产的车载行车记录仪&#xff0c;在DC电源端口测试时&#xff0c;有故障&#xff0c;发生了小概率DC芯片损坏的。具体如下图所示&#xff1a; 案例分析 客户原理图如下&#xff1a; 根据客户原…

出门在外,你需要一个行车记录仪

5月3日下午&#xff0c;一段行车记录仪视频在网上疯传。在这段仅有35秒钟的视频里&#xff0c;一名身穿黑色上衣、白色短裤的男子&#xff0c;开车将一名长发女子逼停&#xff0c;当街殴打。女司机被暴打至骨折脑震荡&#xff0c;身上多处淤青。这段视频曝光后&#xff0c;引起…

锐动SDK应用于行车记录仪

方案架构 手机端直播与录播功能忠实记录旅途中各种突发事件&#xff0c;还原事实真相&#xff0c;与家人和朋友分享沿途美景&#xff0c;一同感受美妙之旅。 强大的视频编辑功能&#xff0c;像编辑图片一样给视频添加各种滤镜&#xff0c;配音&#xff0c;配乐&#xff0c;标题…

行车记录仪数据删除如何恢复?

10月&#xff0c;公安部交通管理局权威发布&#xff0c;截至2018年9月&#xff0c;全国机动车保有量达3.22亿辆&#xff1b;机动车驾驶人达4.03亿人。随着机动车和驾驶人数量的增加&#xff0c;交通事故和机动车交通事故责任纠纷案件也在逐年上涨。 部分案件常常因没有目击证人…

行车记录仪的21条问答

行车安全越来越受到人们的重视&#xff0c;许多车主开始打算为自己的座驾配备一款高清行车记录仪&#xff0c;但大家在购买的过程中有各种疑问&#xff0c;下面就行车记录仪的21个问题从技术角度进行分析&#xff0c;希望对大家有所帮助! 1. 问&#xff1a;选择1296p还是1080p?…

凌度记录仪mov视频恢复修复方法

凌度记录仪听名字应该也是个小厂的产品&#xff0c;不过让人感到惊奇的是对于音频编码其采用了高清格式&#xff0c;这个和目前常见的aac压缩编码形成了对比&#xff0c;因为高清音频虽然效果好&#xff0c;但是占用的空间更大。由于这个案例存在部分覆盖的情况&#xff0c;所以…

android 行车记录仪分析,基于Android架构行车记录仪的异常掉电可播放视频方法与流程...

本发明涉及摄录像视频技术领域&#xff0c;特别涉及一种基于Android架构行车记录仪的异常掉电可播放视频方法。 背景技术&#xff1a; 随着车联网概念的兴起和技术的积累&#xff0c;越来越多的智能设备被接入到车辆上。行车记录仪作为非常重要的一种车载设备形态&#xff0c;越…

行车记录仪android,车叮咚:一款搭载 Android 系统的行车记录仪是怎样的?

市面上关于行车记录仪、OBD 盒子以及车机系统的产品有很多品类&#xff0c;但是大多功能单一&#xff0c;可是如果将以上三种功能进行整合并且以后视镜形态出现的话&#xff0c;会有人感兴趣吗&#xff1f; 这款产品叫做车叮咚&#xff0c;创始人张昊告诉雷锋网(公众号&#xf…