web-dev-qa-db-ja.com

git rm --cached file vs git reset file

Gitを学ぼうとしています。間で混乱しています

git rm --cached file

そして

git reset file

どちらのコマンドも、ファイルをステージングされた領域からステージングされていない領域に移動するようです。コマンドの違いは何ですか?

61
Vihaan Verma

git rm --cached <file>は、インデックスからファイルのコンテンツを完全に削除します。これは、コミット時にファイルがHEADコミットから削除されることを意味します。 (ファイルがインデックスにのみ追加され、まだ追跡されていない場合、これは「no-op」です。)

git reset -- <file>は、インデックス内のファイルの内容をヘッドコミットと同じにリセットします。これは、コミット時に変更なしがファイルにコミットされることを意味します。 HEAD commitにファイルの追跡バージョンがない場合、この操作は無効です。

83
CB Bailey