1. ホーム
  2. git

[解決済み] git rm --cached と git reset <file> の違いは何ですか?

2022-03-06 14:56:33

質問

によると git rm ドキュメント ,

--cached
Use this option to unstage and remove paths only from the index.    
Working tree files, whether modified or not, will be left alone.

しかし、曰く このリソース ファイルのアンステージは

git reset HEAD <file>

何が違うのでしょうか?あるのでしょうか?

解決方法は?

git rm --cached は、ファイルを削除するためにステージングしますが、作業ディレクトリからは削除されません。その場合、ファイルは未追跡として表示されます。

テストドライブをする

git init test_repo
cd test_repo

touch test
git add test
git commit -m 'Added file test

git rm --cached test

git status
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

        deleted:    test      <---- staged for removal

Untracked files:
  (use "git add <file>..." to include in what will be committed)

        test              <-- still in the working dir

git reset <file> を使用すると、ファイルのステージを解除することができます。上の例では git reset test を使用して削除を解除します。

git reset test
git status
On branch master
nothing to commit, working directory clean