Git 停止跟踪文件
Azhar Bashir Khan
2023年1月30日
在本教程中,我们将学习如何在 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 仓库中的文件和文件夹。