本文概述
- git rm命令
- Git Rm缓存
- 撤消Git Rm命令
- Git Rm命令的限制
要删除的文件必须是分支删除的理想文件。对其内容的任何更新都不能在索引中进行。否则, 删除过程可能很复杂, 有时不会发生。但是, 可以通过-f选项强制执行此操作。
让我们通过一个例子来理解它。
git rm命令 git rm命令用于从工作树和索引中删除文件。
如果要从存储库中删除文件。然后可以通过git rm命令来完成。让我们以一个名为newfile.txt的文件来测试rm命令。 git rm命令的操作方式如下:
$ git rm <
file Name>
上面的命令将从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 <
file name>
上面的命令将从版本控制系统中删除文件。删除的文件将保留在存储库中。此命令将以某种方式充当rm命令。让我们通过一个例子来理解它。
假设我们要从Git删除文件, 请使用newfile1.txt进行操作以删除该文件, 请使用以下命令:
$ git rm --cached newfile1.txt
上面的命令将从版本控制系统中删除该文件, 但是仍然可以在存储库中对其进行跟踪。也可以在版本控制系统上重新添加它。要检查文件状态, 请使用status命令, 如下所示:
$ git status
考虑以下输出:
文章图片
【Git rm用法详解】从上面的输出中可以看到, 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仅在当前分支上运行。删除过程仅适用于工作目录和暂存索引树。在创建新的提交之前, 它不会保留在存储库历史记录中。
推荐阅读
- Git squash
- Git revert还原
- Git reset重置
- Git存储库
- Git remote用法详解
- Git Rebase用法
- Git推送push
- Git拉pull请求
- Git Origin和Master分支