从 Git 中的仓库中删除文件

Azhar Bashir Khan 2021年12月25日
从 Git 中的仓库中删除文件

本教程将展示如何从 Git 仓库中删除文件。

Git 支持协作开发环境。因此,一个开发团队将许多文件提交到 Git 仓库中。

通常,我们会遇到一些不再需要或多余的文件。在这种情况下,我们认为删除已经提交到仓库中的此类文件或文件夹是合适的。

我们现在将通过一个例子来说明这一点。

使用 git rm 删除 Git 仓库中的文件和文件夹

假设我们在 Git 仓库中有一个名为 folder1 的文件夹。另外,请考虑此文件夹有两个文件,file1file2

$ ls folder1/
file1  file2

要删除 Git 仓库中的文件,我们需要执行以下操作。

$ git rm <filename>

$ git commit -m "commit message"

$ git push origin branch_name

第一个命令从 Git 仓库和文件系统中删除文件。随后的命令用于提交更改并将更改文件删除推送到远程仓库。

因此,要删除 file1,我们将在我们的示例中执行以下操作。

$ cd folder1

$  git rm file1
rm 'folder1/file1'

我们已经移动到 folder1 并从仓库和文件系统中删除了 file1

我们可以检查删除的状态如下。

$ git status
On branch main
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

	deleted:    file1

现在,我们将按如下方式提交此删除操作。

$ git commit -m "deleted file"
[main 27ec53b] deleted file
 1 file changed, 0 insertions(+), 0 deletions(-)
 delete mode 100644 folder1/file1
 
$ git push origin main

有时,我们可能希望仅从仓库而不是从文件系统中删除文件。我们可能想将该文件用于其他目的。

要仅从仓库而不是从文件系统中删除文件,我们需要执行以下操作。

$ git rm --cached file2

$ git commit -m "Removed file2 from repository only"

$ git push origin main

当我们使用 --cached 选项运行 git rm 命令时,文件会从仓库中删除,但不会从工作树(即)文件系统中删除。

有时,我们可能需要删除整个文件夹。

为此,我们需要将选项 -r 添加到 git rm 命令,如下所示。

$ git rm -r folder1
rm 'folder1/file2'

$ git commit -m "removed folder1"
[main dabfe02] removed folder1
 1 file changed, 0 insertions(+), 0 deletions(-)
 delete mode 100644 folder1/file2
 
$ git push origin main

因此,在我们的示例中,我们现在删除了文件夹,即 folder1 及其内容。

有关 git rm 的更多信息,请浏览以下站点 - git rm

相关文章 - Git Repository