git add 命令用于将文件内容添加到索引(暂存区)。该命令将工作树的当前内容更新到暂存区。它还为下一次提交准备暂存内容。每次我们在项目中添加或更新任何文件时,都需要将更新转发到暂存区。
git add 命令是 Git 技术的核心部分。它通常一次添加一个文件,但也有一些选项可以一次添加多个文件。
“索引”包含工作树数据的快照。这个快照将被转发到下一次提交。
git add 命令可以在提交之前运行多次。这些所有添加操作都可以放在一次提交下。add 命令添加在命令行上指定的文件。
git add 命令默认不添加.gitignore文件。事实上,我们可以通过这个命令忽略文件。
下面我们来了解一下如何在Git上添加文件?
Git 添加文件
Git add 命令是一个直接的命令。它将文件添加到暂存区。我们可以在暂存区一次添加单个或多个文件。它将运行为:
$ git add <文件名>
上述命令已添加到 git 暂存区,但无法在版本控制系统上共享。需要提交操作才能共享它。让我们理解下面的场景。
我们在NewDirectory 中为新创建的存储库创建了一个文件。要创建文件,请使用 touch 命令,如下所示:
$ touch newfile.txt
并通过 git status 命令检查状态是否未被跟踪,如下所示:
$ git status
上面的命令将显示存储库中未跟踪的文件。这些文件可以添加到我们的存储库中。我们知道我们已经创建了一个 newfile.txt,所以要添加这个文件,运行以下命令:
$ git add newfile.txt
考虑以下输出:
从上面的输出中,我们可以看到newfile.txt已添加到我们的存储库中。现在,我们必须提交它以在 Git 上共享。
Git 添加所有
我们可以在 Git 中添加多个文件,但是我们必须重复运行 add 命令。Git 为我们提供了一个独特的 add 命令选项,我们可以通过它一次添加所有可用文件。要添加存储库中的所有文件,请运行带有-A选项的 add 命令。我们可以用 '。' 而不是-A选项。此命令将一次暂存所有文件。它将按如下方式运行:
$ git add -A
或者
$ git add .
上面的命令将添加存储库中的所有可用文件。考虑以下场景:
我们可以创建四个新文件,也可以复制它,然后一次性添加所有这些文件。考虑以下输出:
在上面的输出中,所有文件都被 Git 显示为未跟踪的文件。要一次跟踪所有这些文件,请运行以下命令:
$ git add -A
上面的命令会将所有文件添加到暂存区。请记住,-A选项区分大小写。考虑以下输出:
在上面的输出中,所有文件都已添加。所有文件的状态都显示为暂存。
从暂存区删除文件
git add 命令也用于从暂存区删除文件。如果我们从存储库中删除一个文件,那么它就可以作为未跟踪文件提供给我们的存储库。add 命令用于将其从暂存区中删除。听起来很奇怪,但 Git 可以做到。考虑以下场景:
我们已经从存储库中删除了newfile3.txt。删除文件后仓库的状态如下:
从上面的输出中我们可以看到,被删除的文件在暂存区仍然可用。要将其从索引中删除,请运行以下命令,如下所示:
$ git add newfile3.txt
考虑以下输出:
从上面的输出中,我们可以看到文件已从暂存区中删除。
仅添加所有新文件和更新文件:
Git 允许我们一次仅暂存更新的和新创建的文件。我们将使用忽略删除选项来执行此操作。它将按如下方式使用:
$ git add --ignore-removal .
添加所有修改和删除的文件
Git add 为我们提供了多种选择。Git 中还有另一个可用选项,它允许我们仅暂存已修改和已删除的文件。它不会暂存新创建的文件。要仅暂存所有已修改和已删除的文件,请运行以下命令:
$ git add -u
通过通配符添加文件
Git 允许我们一次添加所有相同的模式文件。这是将多个文件添加在一起的另一种方法。假设我想添加所有的java文件或文本文件,那么我们可以使用模式.java或.txt。为此,我们将按如下方式运行命令:
$ git add *.java
上面的命令将暂存所有 Java 文件。相同的模式将应用于文本文件。
添加文件后的下一步是提交在 Git 上共享它。
Git 撤消添加
我们可以撤消 git add 操作。但是,它不是 git add 命令的一部分,但我们可以通过 git reset 命令来完成。
要撤消添加操作,请运行以下命令:
$ git reset <filename>