git add * 和git add . 的区别是什么求教?

git add * 和git add . 的区别是什么求指教?

git add -A和 git add . git add -u在功能上看似很相近,但还是存在一点差别

git add . :他会监控工作区的状态树,使用它会把工作时的所有变化提交到暂存区,包括文件内容修改(modified)以及新文件(new),但不包括被删除的文件。

git add -u :他仅监控已经被add的文件(即tracked file),他会将被修改的文件提交到暂存区。add -u 不会提交新文件(untracked file)。(git add --update的缩写)

git add -A :是上面两个功能的合集(git add --all的缩写)

下面是具体操作例子,方便更好的理解(Git version 1.x):

复制代码
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

1)git status 查看有变化的文件(一般有变化的文件会以红色显示出来)
2)git add + 想要提交的文件名

3)git commit -m "注释的一些信息"
如果在这一步出错的话:git reset --hard HEAD 回滚到add之前的状态
4)git push 完成这一步,你的文件就已近提交到了分支上,别人通过git pull 命令就可以把你提交的文件拉到他本地。

git add . :使用它会把工作时的所有变化提交到暂存区.

git add + 想要提交的文件名

在linux系统中"."代表当前目录,"*"代表匹配任意文件
git add 有一个可选参数 用来指定文件或指定目录添加

没什么区别,就是使用形式不同而已

git add . :他会监控工作区的状态树,使用它会把工作时的所有变化提交到暂存区,包括文件内容修改(modified)以及新文件(new),但不包括被删git agit add-A 提交所有变化
git add -u 提交被修改(modified)和被删除(deleted)文件,不包括新文件(new)
git add . 提交新文件(new)和被修改(modified)文件,不包括被删除(deleted)文件