UNPKG

hudada-cli

Version:

专为程序员准备的本地文档搜索,快捷开发工具

65 lines (38 loc) 2.03 kB
# git add ## 概述 `git add`命令用于将变化的文件,从工作区提交到暂存区。它的作用就是告诉 Git,下一次哪些变化需要保存到仓库区。用户可以使用`git status`命令查看目前的暂存区放置了哪些文件。 ```bash # 将指定文件放入暂存区 $ git add <file> # 将指定目录下所有变化的文件,放入暂存区 $ git add <directory> # 将当前目录下所有变化的文件,放入暂存区 $ git add . ``` ## 参数 `-u`参数表示只添加暂存区已有的文件(包括删除操作),但不添加新增的文件。 ```bash $ git add -u ``` `-A`或者`--all`参数表示追踪所有操作,包括新增、修改和删除。 ```bash $ git add -A ``` Git 2.0 版开始,`-A`参数成为默认,即`git add .`等同于`git add -A``-f`参数表示强制添加某个文件,不管`.gitignore`是否包含了这个文件。 ```bash $ git add -f <fileName> ``` `-p`参数表示进入交互模式,指定哪些修改需要添加到暂存区。即使是同一个文件,也可以只提交部分变动。 ```bash $ git add -p ``` 注意,Git 2.0 版以前,`git add`默认不追踪删除操作。即在工作区删除一个文件后,`git add`命令不会将这个变化提交到暂存区,导致这个文件继续存在于历史中。Git 2.0 改变了这个行为。 ## 实现细节 通过`git add`这个命令,工作区里面那些新建或修改过的文件,会加入`.git/objects/`目录,文件名是文件内容的 SHA1 哈希值。`git add`命令同时还将这些文件的文件名和对应的哈希值,写入`.git/index`文件,每一行对应一个文件。 下面是`.git/index`文件的内容。 ``` data/letter.txt 5e40c0877058c504203932e5136051cf3cd3519b ``` 上面代码表示,`data/letter.txt`文件的哈希值是`5e40c087...`。可以根据这个哈希值到`.git/objects/`目录下找到添加后的文件。 dfdadf fdsaffd fds dfs fds