git add命令

git add 命令详解

前言

git add命令主要用于把我们要提交的文件的信息添加到索引库中。当我们使用git commit时,git将依据索引库中的内容来进行文件的提交。

基本

git add 表示 add to index only files created or modified and not those deleted 我通常是通过git add 的形式把我们添加到索引库中,可以是文件也可以是目录。 git不仅能判断出中,修改(不包括已删除)的文件,还能判断出新添的文件,并把它们的信息添加到索引库中。

git add -u

git add -u 表示 add to index only files modified or deleted and not those created git add -u []: 把中所有tracked文件中被修改过或已删除文件的信息添加到索引库。它不会处理untracted的文件。 省略表示.,即当前目录。

git add -A

git add -A: []表示把中所有tracked文件中被修改过或已删除文件和所有untracted的文件信息添加到索引库。 省略表示.,即当前目录。

git add -i

我们可以通过git add -i []命令查看中被所有修改过或已删除文件但没有提交的文件, 并通过其revert子命令可以查看中所有untracted的文件,同时进入一个子命令系统。 比如: git add -i staged unstaged path 1: +0/-0 nothing branch/t.txt 2: +0/-0 nothing branch/t2.txt 3: unchanged +1/-0 readme.txt

*** Commands *** 1: [s]tatus 2: [u]pdate 3: [r]evert 4: [a]dd untracked 5: [p]atch 6: [d]iff 7: [q]uit 8: [h]elp What now> 这里的t.txt和t2.txt表示已经被执行了git add,待提交。即已经添加到索引库中。 readme.txt表示已经处于tracked下,它被修改了,但是还没有被执行了git add。即还没添加到索引库中。

revert子命令

可以通过git add -i的revert子命令(3: [r]evert)把已经添加到索引库中的文件从索引库中剔除。 (3: [r]evert)表示通过3或r或revert加回车执行该命令。执行该命令后,git会例出索引库中的文件列表. 然后通过数字来选择。输入"1"表示git会例出索引库中的文件列表中的第1个文件。 “1-15"表示git会例出索引库中的文件列表中的第1个文件到第15个文件.回车将执行。 如果我们不输入任何东西,直接回车,将结束revert子命令,返回git add -i的主命令行。

update子命令

可以通过update子命令(2: [u]pdate)把已经tracked的文件添加到索引库中。其操作和revert子命令类似。

add untracked子命令

通过add untracked子命令(4: [a]dd untracked)可以把还没被git管理的文件添加到索引库中。其操作和revert子命令类似。

diff子命令

可以通过diff子命令(6: [d]iff)可以比较索引库中文件和原版本的差异。其操作和revert子命令类似。

status子命令

status子命令(1: [s]tatus)功能上和git add -i相似

quit子命令

quit子命令(7: [q]uit)用于退出git add -i命令系统

帮助

我们可以通过git add -h命令来看git add命令的帮助文档。 git add -h usage: git add [options] [–] …

-n, --dry-run         dry run
-v, --verbose         be verbose

-i, --interactive     interactive picking
-p, --patch           select hunks interactively
-e, --edit            edit current diff and apply
-f, --force           allow adding otherwise ignored files
-u, --update          update tracked files
-N, --intent-to-add   record only the fact that the path will be added later
-A, --all             add changes from all tracked and untracked files
--refresh             don't add, only refresh the index
--ignore-errors       just skip files which cannot be added because of errors
--ignore-missing      check if - even missing - files are ignored in dry run

 Share!

 
comments powered by Disqus