Git RM -- キャッシュと Git リセット ファイルの違い
この記事では、git rm --cached
コマンドと git reset<file>
コマンドの違いについて説明します。 2つの違いを理解するために、各コマンドの機能について説明します。
git rm --cached
と git 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
出力:
上記の出力から、.env
ファイルは削除されましたが、追跡されていないファイルの下に残っていることがわかります。 git reset<file>
コマンドが何をするか見てみましょう。
git reset <file>
コマンド
以下に示すように、git reset
コマンドを実行します。
$ git reset HEAD .env
git status
コマンドを実行して、作業ツリーをチェックアウトできます。
$ git status
出力:
上記の出力から、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 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