gitローカルキャッシュをクリアする


97

コミットしようとしていたWebstormプロジェクトがありますが、Git Windows GUIのコミットボタンを押す前に、.ideaフォルダーのコンテンツをコミットしたくないことを思い出しました。

そこで.gitignores、特定のIDE用に自動生成されるWebサイトを使用して、.gitignoreファイルに追加しました。

問題の.ideaファイルを削除して再度追加したにもかかわらず、明示的に無視されたすべてのファイルはまだコミットに表示されています。

また、他のファイルなしでgitignoreファイルをコミットし、コンテンツを再貼り付けしましたが、それでも.ideaファイルを無視していません。

Gitにキャッシュを更新またはクリアするように指示するにはどうすればよいですか?
問題のディレクトリに/ cdして、入力してみました

git clean -n

しかし、ファイルは表示されません。

回答:


126

明示的に無視されたすべての.ideaファイルはまだコミットするために表示されています

ステージングエリアからそれらを削除する必要があります

git rm --cached .idea

ここで、これらの変更をコミットする必要があり、この時点から無視されます。
gitが変更の追跡を開始すると、.gitignore後でファイルに追加された場合でも、変更の追跡を「停止」しません。

それらを完全に無視するには、明示的に削除してから手動で削除をコミットする必要あります。


ここに画像の説明を入力してください

ここに画像の説明を入力してください


4
しかし、無視しようとしているファイルをコミットすることはありません。これは私に教えてくれますfatal: pathspec '.idea' did not match any files
jozenbasin 2017年

git statusと入力すると、それらが表示されますか?ファイルを自動追加するチェックボックスを
オンにした

2
わかりませんが、致命的なエラーが返されましたが、あなたがくれたコマンドは機能したようです。ファイルはコミットするために表示されなくなりました。
jozenbasin 2017年

-r再帰的な削除のために追加することを検討するかもしれません
Vishrant 2018

90

gitが台無しになっていると思われる場合は、このコマンドを使用してすべてを最新の状態にすることができます。

git rm -r --cached .
git add .
git commit -am 'git cache cleared'
git push

また、最後のコミットを元に戻すには、これを使用します。

git reset HEAD^ --hard

6
変更をリモートにプッシュしたくない場合は、gitpushを使用しないでください。ただし、そうした場合は、Android Studioの下部にあるバージョン管理タブに移動し、前のコミットを右クリックして、[現在のブランチをここにリセット]を選択します
Swapnil 2018年

リセット部分はせいぜい混乱していました。しかし、私は「git push」までやり、大丈夫でした。
Seun S.Lawal19年

7

git ignoreで変更を行う場合は、gitキャッシュもクリアする必要があります

> git rm -r --cached . 
> git add . 
> git commit -m 'git cache cleared'
> git push

特定のフォルダやファイルを削除したい場合は

git rm  --cached filepath/foldername

3
git rm --cached *.FileExtension

これは、この拡張子のすべてのファイルを無視する必要があります


3

git-ignore fileを変更した後、このコマンドを実行します。このコマンドは、ファイルや変更ではなく、すべてのファイルキャッシュを削除します。

git rm -r--cached。

このコマンドの実行後、ファイルをコミットします

キャッシュから単一のファイルまたはフォルダを削除するには、このコマンドを使用します

git rm --cached filepath / foldername


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.