git add加不同参数的区别
大约 2 分钟
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 * | ❌ | ✅ | ✅ | ❌ |