📜  “add -A”、“add -u”、“add ”之间的区别。 , 和“添加 *”

📅  最后修改于: 2021-09-12 11:04:15             🧑  作者: Mango

git add -A 或 git add –all :
它的作用是将所有更改、所有修改、删除和新文件以及整个工作树中的点文件暂存。

git add -A

所以,你可以说它完成了整个工作树,这意味着如果你在我的子目录中并且你可以执行git add -A
无论您在哪个子目录中,它都会暂存所有更改。

git add -A

我们还可以使用git add -A来暂存特定目录中的所有更改。

git add -A 新目录

笔记 –

git add -A 

这是 git add 的默认行为。所以,我可以省略 -A然后它也会对所有上述 3 种情况做完全相同的事情。现在这种行为实际上是 git 版本 2 的新行为。在 git 版本 1 中,如果您离开-A它将忽略已删除的文件。现在,如果您仍然想要 git 版本 1 的功能,只需执行git add –no-allgit add –ignore-removal

git add -u 或 git add –update :
它添加所有修改和删除的文件,但不添加任何未跟踪的文件,并且它对整个树执行此操作。

git add -u

因此,如果您指定一个目录,那么它将暂存该子目录中所有已修改和删除的文件,但不会暂存任何未跟踪的文件,而不会影响其父目录中的更改。

git add -u newdir

git 添加。
无论是未跟踪的文件、已删除的文件还是已修改的文件,此特定命令都将暂存所有更改。

添加

现在,它可能看起来与git add -A完全相同,但只要您在顶级目录中,它看起来就相同。那么让我们看看这有什么不同。如果您在顶级目录中,则git add -Agit add 。是完全一样的。

添加

因此,您可以在上图中看到执行git add 。在子目录中将暂存该子目录中的所有更改,但不会影响其父目录。所以 git add之间的主要区别。和git add -A是在git add -A 中,无论您从何处执行此命令,它都会暂存所有内容,无论是子目录还是父目录,但git add 。仅暂存当前目录中的更改,而不是它的父目录。

git 添加 *
现在,你可以看到很多学生使用这个命令,你可以亲自避免这个命令并建议你同样的,这是因为*是一个 shell 命令,它不是 git 特别知道如何使用它的东西,它只会采用 aster 的所有内容。

ls *

如下图所示,当你执行命令时git add *给出了一个非常意外的结果,因为它看不到被删除的文件,但是一个被删除的文件被添加到暂存区,这个被删除的文件没有,隐藏文件没有得到它。

git 添加 *