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