跳至主要內容

git add加不同参数的区别

ekskei大约 2 分钟gitgit

git add加不同参数的区别

git add 可将该文件添加到暂存区。常用的加不同参数的命令有以下几个:

# -A 相当于all,将当前整个工作区中所有的文件改动提交至暂存区
# 包括整个工作区中的新增、修改和被删除的文件,不受当前所在目录限制
git add -A

# 将当前工作区中当前目录(包括子目录)下的所有的文件改动提交至暂存区
# 包括新增、修改和被删除的文件,不包括当前所在目录之外的文件
# 2.x 版本相比 1.x 版本,对 git add . 的功能做了改动
# 2.x 会提交被删除的文件,而 1.x 不包括被删除的文件
# 2.x 中如果想在使用 git add . 时不提交被删除的文件,可加上--ignore-removal
git add .

# 将当前整个工作区中被修改和被删除的文件提交至暂存区
# 包括整个工作区中修改和被删除的文件,不受当前所在目录限制
# 而新文件因为未被跟踪(untracked),所以不会被提交至暂存区
git add -u

# 将当前工作区中当前目录(包括子目录)下的所有的文件改动提交至暂存区
# 包括新增、修改和被删除的文件,但不包括文件名以 . 符号开头的文件的改动
# 不包括当前所在目录之外的文件
git add *

总结,对于 git 2.x 版本来说,各个命令的区别详见下表:

命 令新 文 件被修改的文件被删除的文件当前目录外的文件
git add -A
git add .
git add -u
git add *