Git 停止跟踪文件

Azhar Bashir Khan 2023年1月30日
  1. 使用 git rm 停止跟踪 Git 中的文件
  2. 在 Git 中使用 git update-index 停止跟踪文件
Git 停止跟踪文件

在本教程中,我们将学习如何在 Git 中停止跟踪仓库中的文件和文件夹。

在开发仓库中,我们经常遇到这样的情况,我们不再希望在 Git 中跟踪某些文件的更改。

假设我们有一个文件,我们现在觉得它是多余的,不再与项目相关。在这种情况下,我们希望从 Git 仓库中的跟踪中删除该文件。

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

使用 git rm 停止跟踪 Git 中的文件

假设我们在 Git 的仓库中有一个名为 file1 的文件,我们不再希望跟踪它。

我们可以使用带有 --cached 选项的 git rm 命令从 Git 中的跟踪中删除该文件。

$ git rm --cached file1
rm 'file1'

我们还可以使用以下命令从 Git 仓库中的跟踪中删除文件夹。

$ git rm -r --cached <folder-name>

这将从跟踪中删除指定的文件或文件夹(即)从索引中删除它;但不会从文件系统中删除该文件。

注意
<div class="panel panel-primary panel-warning">
<div class="panel-heading">注意</div>
<div class="panel-body">当我们在其他机器上执行 <code>git pull</code> 以从远程仓库获取新更改时,该文件或文件夹将从该文件系统中删除。当我们从远程仓库新克隆时,这也会导致删除文件或文件夹。</div>
</div>

另请注意,我们需要提交文件删除以更新远程仓库中的此更改。

$ git commit -m "Removed file1"
$ git push

在 Git 中使用 git update-index 停止跟踪文件

有时,我们可能希望在仓库中保留一个文件,但不再希望跟踪其更改。我们可以使用带有 --skip-worktree 选项的 git update-index 命令来实现这一点。

$ git update-index --skip-worktree file1

命令 git update-index--skip-worktree 选项使 Git 假装文件的版本是最新的,而是从索引版本中读取。这对于配置文件特别有用。

我们可能在仓库中有一些具有默认值或生产值的配置文件,我们可能会根据需要对其进行一些更改,但不想提交这些更改。用于命令 git update-index--skip-worktree 选项对于此类目的非常方便。

因此,我们详细说明了停止跟踪 Git 仓库中的文件和文件夹。

相关文章 - Git Tracking