Git RM -- キャッシュと Git リセット ファイルの違い

John Wachira 2024年2月15日
Git RM -- キャッシュと Git リセット ファイルの違い

この記事では、git rm --cached コマンドと git reset<file> コマンドの違いについて説明します。 2つの違いを理解するために、各コマンドの機能について説明します。

git rm --cachedgit reset<file> の違い

コンテキストをわかりやすくするために、各コマンドが実行できることを調べてから、2つのコマンドが表示するさまざまな出力を分析します。 すぐに飛び込みましょう。

git rm --cached コマンド

git status コマンドを実行した後、Git が以下の提案を表示することがあります。

$ git status
On branch master

No commits yet

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)

	new file:   .env

rm オプションを使用して .env ファイルのステージングを解除してみましょう。 以下を実行します。

$ git rm --cached .env

git status コマンドを実行して、作業ディレクトリの状態を確認しましょう。

$ git status

出力:

git rm &ndash;cached image

上記の出力から、.env ファイルは削除されましたが、追跡されていないファイルの下に残っていることがわかります。 git reset<file> コマンドが何をするか見てみましょう。

git reset <file> コマンド

以下に示すように、git reset コマンドを実行します。

$ git reset HEAD .env

git status コマンドを実行して、作業ツリーをチェックアウトできます。

$ git status

出力:

git reset image

上記の出力から、git reset <file> コマンドによって、ファイルに加えられた変更が取り除かれていることがわかります。

git rm --cached コマンドは、削除のためにファイルをステージングしますが、ファイルは追跡されません。 一方、git reset <file> コマンドは、ファイルのステージングを解除するだけです。

git rm --cached オプションは、作業ツリーを変更せずに追跡されていないファイルのステージングを解除したい場合に最適です。 対応するコマンド git reset <file> は、作業ツリーではなくインデックスをリセットします。

簡単に言えば、git rm --cached コマンドはインデックス内のパスを削除して追跡しないままにし、git rest<file> コマンドはインデックスのみをリセットします。 追跡されていないファイルで git rm --cached コマンドを使用します。

著者: John Wachira
John Wachira avatar John Wachira avatar

John is a Git and PowerShell geek. He uses his expertise in the version control system to help businesses manage their source code. According to him, Shell scripting is the number one choice for automating the management of systems.

LinkedIn

関連記事 - Git rm

関連記事 - Git Reset