首页 > 代码库 > git add && git add -u && git add -A

git add && git add -u && git add -A

git add
将当前工作目录中更改或者新增的文件加入到Git的索引中,加入到Git的索引中就表示记入了版本历史中,这也是提交之前所需要执行的一步。可以递归添加,即如果后面跟的是一个目录作为参数,则会递归添加整个目录中的所有子目录和文件。

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

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

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

eg. git add && git add -A && git add -u
git init
echo Change me > change-me
echo Delete me > delete-me
git add change-me delete-me
git commit -m initial

echo OK >> change-me
rm delete-me
echo Add me > add-me

git status
# Changed but not updated:
# modified: change-me
# deleted: delete-me
# Untracked files:
# add-me

git add .
git status

# Changes to be committed:
# new file: add-me
# modified: change-me
# Changed but not updated:
# deleted: delete-me

git reset

git add -u
git status

# Changes to be committed:
# modified: change-me
# deleted: delete-me
# Untracked files:
# add-me

git reset

git add -A
git status

# Changes to be committed:
# new file: add-me
# modified: change-me
# deleted: delete-me

git add && git add -u && git add -A