Git でファイルの追跡を停止する

Azhar Bashir Khan 2023年1月30日
  1. Git で git rm を使用してファイルの追跡を停止する
  2. Git で git update-index を使用してファイルの追跡を停止する
Git でファイルの追跡を停止する

このチュートリアルでは、Git のリポジトリ内のファイルとフォルダーの追跡を停止する方法を学習します。

開発リポジトリでは、Git の変更について一部のファイルを追跡する必要がなくなったという状況に遭遇することがよくあります。

現在冗長であり、プロジェクトに関連しなくなったと思われるファイルがあるとします。このような場合、Git のリポジトリの追跡からファイルを削除する必要があります。

これを例を挙げて説明します。

Git で git rm を使用してファイルの追跡を停止する

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 を使用してファイルの追跡を停止する

場合によっては、ファイルをリポジトリに保持したいが、その変更を追跡したくない場合があります。これを実現するには、git update-index コマンドを --skip-worktree オプションとともに使用できます。

$ git update-index --skip-worktree file1

コマンド git update-index--skip-worktree オプションにより、Git はファイルのバージョンが最新であると偽って、代わりにインデックスバージョンから読み取ります。これは、構成ファイルに特に役立ちます。

リポジトリにデフォルト値または本番値の構成ファイルがいくつかある場合があり、必要に応じていくつかの変更を加える場合がありますが、これらの変更をコミットしたくありません。git update-index をコマンドする --skip-worktree オプションは、このような目的に非常に便利です。

したがって、Git リポジトリ内のファイルとフォルダーの追跡を停止する方法について詳しく説明しました。

関連記事 - Git Tracking