在 Git 中撤消 rm

Abdul Jabbar 2023年1月30日 2022年4月22日
  1. 在 Git 中删除文件
  2. 使用 Git checkout 命令恢复 rm 命令:
  3. 使用 Git reset 命令恢复 rm 命令
在 Git 中撤消 rm

在 Git 中,术语 rm 是 git remove 命令的别名。因此它用于从仓库中删除单个文件或一堆文件。Git 中 git rm 的主要功能是使用 Git 索引删除跟踪的文件。

但是,git rm 也可用于从工作目录和索引中删除文件。它从当前工作目录及其在同一分支中的子目录中删除文件。它不会删除当前工作目录之外的文件。值得一提的是,git rm 命令不用于删除仓库中的分支。

在 Git 中删除文件

要从 Git 索引中删除单个文件,我们使用以下命令:

$ git rm <file>

同样,要从 Git 中删除一堆文件,我们使用以下命令。

$ git rm <file> <file> <file> ...

如果我们希望从工作目录中删除文件,我们使用以下命令:

$ git rm --cached <file>

git rm --cached 从工作目录中删除文件时,它不会从 Git 索引中删除它。

但是在这篇文章中,我们说明了如果我们不小心应用了这个命令该怎么办,现在我们想恢复它。下面提到的方法是还原更改的简单方法。Git 有很多命令可以恢复它。我认为最好在以下部分涵盖我们将使用最多的内容:

使用 Git checkout 命令恢复 rm 命令:

首先,我们将执行命令 git reset 将暂存区恢复为我们所做的更改。

git reset

应用 git reset 后,我们将运行 git checkout 以恢复同一仓库中上次签入时删除的文件或文件夹。

git checkout <file-name>

如果我们不想恢复暂存区域并检查已删除的文件,我们可以通过提及 head 来轻松执行它,以达到预期的目标,如下所示:

git checkout HEAD <file-name>

使用 Git reset 命令恢复 rm 命令

如果我们没有重要的未提交更改,那么我们将使用 --hard 选项运行 git reset,这会将所有内容重置为我们在分支中的最新提交:

git reset --hard HEAD

如果我们有未提交的更改,但第一个 git 命令不起作用,那么我们将使用 git stash 保存未提交的更改:

git stash
git reset --hard HEAD
git stash pop
Author: Abdul Jabbar
Abdul Jabbar avatar Abdul Jabbar avatar

Abdul is a software engineer with an architect background and a passion for full-stack web development with eight years of professional experience in analysis, design, development, implementation, performance tuning, and implementation of business applications.

LinkedIn