📜  Git Rm

📅  最后修改于: 2020-12-13 15:19:40             🧑  作者: Mango

Git Rm

在Git中,术语rm表示删除。它用于删除单个文件或文件集合。 git rm的关键函数是从Git索引中删除跟踪的文件。此外,它可用于从工作目录和登台索引中删除文件。

对于分支,删除的文件必须是理想的。对其内容的任何更新都不能在索引中进行。否则,删除过程可能很复杂,有时不会发生。但是,可以通过-f选项强制执行此操作。

让我们通过一个例子来理解它。

git rm命令

git rm命令用于从工作树和索引中删除文件。

如果要从存储库中删除文件。然后可以通过git rm命令来完成。让我们以一个名为newfile.txt的文件来测试rm命令。 git rm命令的操作方式如下:

$ git rm 

上面的命令将从Git和存储库中删除文件。 git rm命令不仅从存储库中删除文件,还从临时区域中删除文件。如果我们检查存储库的状态,那么它将显示为已删除。考虑以下输出:

在以上输出中,文件newfile.txt已从版本控制系统中删除。因此,存储库和状态显示为已删除。如果仅使用rm命令,则它将不会从Git永久删除文件。可以在暂存区域中对其进行跟踪。考虑以下输出:

在以上输出中,文件newfile2.txt已被删除。但是,当我们检查存储库的状态时,我们可以在暂存区域中跟踪文件。这意味着newfile2尚未从登台区域中删除,它在存储库中也可用。我们可以通过提交将其恢复到版本控制系统上。要提交文件,首先,将其添加到索引中,然后提交。要将此文件添加到索引中,请运行以下命令:

$ git add newfile2.txt

上面的命令会将文件添加到索引中。要提交它,请运行以下命令:

$ git commit -m "commit message."

它将提交文件并将其提供给版本控制系统。考虑以下输出:

在上面的输出中,我们正在将文件从登台区域检索到我们的目录中。 newfile2.txt被重新添加到我们的存储库中。

Git Rm缓存

有时您想从Git中删除文件,但将文件保留在本地存储库中。换句话说,您不想在Git上共享文件。 Git允许您这样做。在这种情况下,将使用缓存的选项。它指定删除操作仅作用于登台索引,而不作用于存储库。带有缓存选项的git rm命令将用作:

$ git rm --cached  

上面的命令将从版本控制系统中删除文件。删除的文件将保留在存储库中。该命令将以某种方式充当rm命令。让我们通过一个例子来理解它。

假设我们要从Git删除文件,请使用newfile1.txt进行操作以删除该文件,请使用以下命令:

$ git rm --cached newfile1.txt

上面的命令将从版本控制系统中删除该文件,但是仍然可以在存储库中对其进行跟踪。也可以在版本控制系统上重新添加它。要检查文件状态,请使用status命令,如下所示:

$ git status

考虑以下输出:

从上面的输出中可以看到,newfile1.txt文件已从版本控制系统中删除,但是可以在存储库中对其进行跟踪。该文件在版本控制系统上作为未跟踪的文件可用。我们可以通过提交来跟踪它。

撤消Git Rm命令

git rm命令的执行不是永久的;执行后可以将其还原。在对存储库进行新提交之前,这些更改无法持久保存。我们可以撤消git rm命令。有几种方法可以做到这一点。最普通和直接的方法是git reset命令。 git reset命令的用法如下:

$ git reset HEAD

或者我们也可以使用:

$ git reset --hard

上面的命令将重置磁头的位置。这样它就可以得到其上一点的位置。考虑以下输出:

从上面的输出中,我们可以看到文件已成功重置到其先前位置。

还有另一种撤消git rm命令的方法。我们也可以通过git checkout命令来做到这一点。签出具有相同的效果,并从HEAD恢复文件的最新版本。它的用法如下:

$ git checkout. 

Git Rm命令的限制

git rm仅在当前分支上运行。删除过程仅适用于工作目录和暂存索引树。在创建新的提交之前,它不会保留在存储库历史记录中。