Löschen Sie den lokalen Git-Cache

92

Ich habe ein Webstorm-Projekt, das ich festschreiben wollte, aber bevor ich auf die Schaltfläche "Festschreiben" in der Git Windows-GUI geklickt habe, habe ich mich daran erinnert, dass ich meinen Ordnerinhalt nicht festschreiben möchte .idea.

Also habe ich die Website verwendet, die automatisch .gitignoresfür bestimmte IDEs generiert wird , und sie meiner .gitignoreDatei hinzugefügt .

Alle .ideaDateien, die explizit ignoriert werden, werden weiterhin zum Festschreiben angezeigt, obwohl ich die betreffenden Dateien entfernt und erneut hinzugefügt habe.

Ich habe die Gitignore-Datei auch ohne andere Dateien festgeschrieben und meinen Inhalt erneut eingefügt, aber die IDE-Dateien werden immer noch nicht ignoriert.

Wie kann ich Git anweisen, den Cache zu aktualisieren oder zu leeren?
Ich habe versucht, in das betreffende Verzeichnis zu gelangen und zu tippen

git clean -n

Es werden jedoch keine Dateien angezeigt.

Jozenbecken
quelle

Antworten:

120

Alle .idea-Dateien, die explizit ignoriert werden, werden weiterhin zum Festschreiben angezeigt

Sie müssen sie aus dem Staging-Bereich entfernen

git rm --cached .idea

Jetzt müssen Sie diese Änderungen festschreiben und sie werden von diesem Punkt an ignoriert.
Sobald git anfängt, Änderungen zu verfolgen, wird es nicht "aufhören", sie zu verfolgen, selbst wenn sie .gitignorespäter zur Datei hinzugefügt wurden .

Sie müssen sie explizit entfernen und dann manuell entfernen, um sie vollständig zu ignorieren.


Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein

CodeWizard
quelle
3
Ich habe jedoch nie die Dateien fatal: pathspec '.idea' did not match any files
festgeschrieben
Wenn Sie den Git-Status eingeben, sehen Sie sie? WebStorm hat sie möglicherweise für Sie hinzugefügt, wenn Sie das Kontrollkästchen zum automatischen Hinzufügen von Dateien
aktiviert haben
2
Ich habe keine Ahnung, aber es scheint, dass der Befehl, den Sie mir gegeben haben, funktioniert hat, obwohl er einen schwerwiegenden Fehler zurückgegeben hat. Die Dateien werden nicht mehr zum Festschreiben angezeigt.
Jozenbasin
Sie könnten in Betracht ziehen, -rfür rekursives Entfernen
hinzuzufügen
79

Wenn Sie glauben, dass Ihr Git durcheinander ist, können Sie mit diesem Befehl alles auf den neuesten Stand bringen.

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

Verwenden Sie Folgendes, um das letzte Commit zurückzusetzen:

git reset HEAD^ --hard
Kamal Kumar
quelle
6
Verwenden Sie git push nicht, wenn Sie Änderungen nicht auf die Fernbedienung übertragen möchten. Wenn Sie dies getan haben, gehen Sie zur Registerkarte Versionskontrolle am unteren Rand von Android Studio, klicken Sie mit der rechten Maustaste auf das vorherige Commit und wählen Sie "Aktuellen Zweig auf hier
zurücksetzen
Der Reset-Teil war bestenfalls verwirrend. aber ich habe bis zum 'git push' gemacht und es ging mir gut.
Seun S. Lawal
6

Wenn Sie Änderungen am Git-Ignorieren vornehmen, müssen Sie auch den Git-Cache leeren

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

Wenn Sie einen bestimmten Ordner oder eine bestimmte Datei entfernen möchten, dann

git rm  --cached filepath/foldername
Akshay kumar
quelle
3
git rm --cached *.FileExtension

Dies muss alle Dateien dieser Erweiterung ignorieren

Allan Ferraz
quelle
3

Nach dieser Änderung in der git-ignore-Datei wird dieser Befehl ausgeführt. Dieser Befehl entfernt den gesamten Datei-Cache, nicht die Dateien oder Änderungen

git rm -r --cached.

Nach Ausführung dieses Befehls werden die Dateien festgeschrieben

Verwenden Sie diesen Befehl, um einzelne Dateien oder Ordner aus dem Cache zu entfernen

git rm - zwischengespeicherter Dateipfad / Ordnername

Akshay
quelle
2

So entfernen Sie das zwischengespeicherte Verzeichnis .idea / z.Bgit rm -r --cached .idea

Max Droid
quelle