Ich füge dies zur .gitignore- Datei hinzu
.idea/*
aber trotzdem ist der status:
# modified: .gitignore
# modified: .idea/.generators
# modified: .idea/dovezu.iml
# modified: .idea/misc.xml
# modified: .idea/workspace.xml
Was mache ich falsch ? Ich habe sogar .idea / * zum globalen ~ / .gitignore_global hinzugefügt, aber der Git-Status zeigt mir trotzdem:
# modified: .gitignore
# modified: .idea/.generators
# modified: .idea/dovezu.iml
# modified: .idea/misc.xml
# modified: .idea/workspace.xml
Antworten:
Ihr
.gitignore
arbeitet, aber es verfolgt immer noch die Dateien, weil sie bereits im Index waren.Um dies zu stoppen, müssen Sie Folgendes tun:
git rm -r --cached .idea/
Wenn Sie ein Commit durchführen, wird das
.idea/
Verzeichnis aus Ihrem Git-Repository entfernt und die folgenden Commits ignorieren das.idea/
Verzeichnis.PS: Sie könnten ein Verzeichnis verwenden,
.idea/
anstatt es.idea/*
zu ignorieren. Sie können weitere Informationen über die Muster auf finden die .gitignore Manpage .Hilfreiches Zitat aus der
git-rm
Manpagequelle
.gitignore
und dann zu tungit rm -cached
?commit
nach dem Entfernen der zwischengespeicherten Dateien müssen? Das scheint wirklich kontraintuitiv zu sein; Dies sind Dateien, die ich NICHT festschreiben möchte. Und ich möchte nicht, dass sie aus dem Repository gelöscht werden (ich möchte nur, dass sie nicht länger herumhängen und meine überladengit status
). Oder bin ich nur wirklich verwirrt?Die Personen, die möglicherweise noch nach diesem Problem suchen, sehen sich nur diese Seite an.
Auf diese Weise können Sie zwischengespeicherte Indexdateien entfernen und nur die benötigten Dateien hinzufügen, einschließlich Änderungen an Ihrer
.gitignore
Datei.Hier ein bisschen mehr Infos.
quelle
Die hier und an anderen Orten angebotenen Lösungen haben bei mir nicht funktioniert, daher werde ich die Diskussion für zukünftige Leser ergänzen. Ich verstehe das Verfahren zwar noch nicht vollständig, habe aber endlich mein (ähnliches) Problem gelöst und möchte es teilen.
Ich hatte versehentlich einige Dokumentverzeichnisse mit mehreren hundert Dateien zwischengespeichert, als ich mit git in IntelliJ IDEA unter Windows 10 arbeitete, und nachdem ich sie hinzugefügt hatte
.gitignore
(und sie wahrscheinlich ein wenig verschoben hatte), konnte ich sie nicht aus der Standard-Änderungsliste entfernen.Ich habe zuerst die tatsächlichen Änderungen vorgenommen, die ich vorgenommen hatte, und dann die Lösung gefunden - ich habe viel zu lange gebraucht. Ich habe es versucht, bekam
git rm -r --cached .
aber immerpath-spec
FEHLER, mit verschiedenen Variationen derpath-spec
sowie mit den-f
und-r
Flags.git status
würde immer noch die Dateinamen anzeigen, also habe ich versucht, einige dieser wörtlich mit zu verwendengit rm -cached
, aber kein Glück. Das Verstecken und Entstapeln der Änderungen schien zu funktionieren, aber sie wurden nach einiger Zeit wieder in die Warteschlange gestellt (ich bin ein bisschen verschwommen im genauen Zeitrahmen). Ich habe diese Einträge endgültig entferntIch gehe davon aus, dass dies nur dann eine gute Idee ist, wenn Sie keine Änderungen vorgenommen haben, die Sie tatsächlich festschreiben möchten.
quelle
Einfach hinzufügen
git rm -r --cached <folder_name/file_name>
Manchmal aktualisieren Sie die Gitignore-Datei nach dem Festschreibungsbefehl für Dateien. Die Dateien werden also im Speicher zwischengespeichert. Verwenden Sie den obigen Befehl, um die zwischengespeicherten Dateien zu entfernen.
quelle
Git hinzufügen.
Git-Status // Überprüfen Sie die Datei, die geändert wird
// git reset HEAD --- Ersetze die Datei, die du ignorieren möchtest
git reset HEAD .idea / <- Diejenigen, die .idea vor dem Festschreiben ausschließen wollten // git check status und die Ideendatei sind verschwunden und Sie können loslegen!
git commit -m ''
Git Push
quelle