Kann .idea / workspace.xml nicht ignorieren - taucht immer wieder auf

237

Mit PHPStorm versuche ich, das zu ignorieren, workspace.xmlwas jedes Mal auftaucht, wenn ich versuche, ein Git-Commit durchzuführen .

Mein .gitignoresieht aus wie:

/.idea/
.idea/workspace.xml

Da die Datei zu einem bestimmten Zeitpunkt festgeschrieben wurde, habe ich auch Folgendes ausgeführt:

git rm --cached .idea/workspace.xml und dann die Entfernung begangen, zu einem nackten Repo geschoben.

Die Datei wird jedoch später immer wieder angezeigt, wenn ich Änderungen im Projekt vornehme.

Irgendwelche Ideen, was mir fehlt?

Valentin Despa
quelle
Versuchte alles unten, hinzugefügt zu Gitignore, aber es kommt immer wieder zurück und ignoriert Gitignore.
Olaf
Sieht aus wie die gleiche Frage . Probieren Sie es aus und sehen Sie ...
Luca Ballore
Checken Sie diesen Link aus: stackoverflow.com/questions/8156299/… . Sieht aus wie das gleiche Problem.
Luca Ballore

Antworten:

288

Ich hatte das gleiche Problem und es trieb mich die Wand hoch. Das Problem bestand schließlich darin, dass der Ordner .idea bereits BEREITS in das Repo übernommen wurde und daher von git verfolgt wurde, unabhängig davon, ob Sie sie ignoriert haben oder nicht. Nach dem Schließen von RubyMine / IntelliJ oder der von Ihnen verwendeten IDE würde ich Folgendes empfehlen:

mv .idea ../.idea_backup
rm .idea # in case you forgot to close your IDE
git rm -r .idea 
git commit -m "Remove .idea from repo"
mv ../.idea_backup .idea

Stellen Sie anschließend sicher, dass Sie .idea in Ihrem .gitignore ignorieren

Obwohl es ausreicht, es im .gitignore des Repositorys zu ignorieren, würde ich vorschlagen, dass Sie die Punktedateien Ihrer IDE global ignorieren.

Andernfalls müssen Sie es für jedes Projekt, an dem Sie arbeiten, zu jedem Gitgnore hinzufügen. Wenn Sie mit anderen Personen zusammenarbeiten, empfiehlt es sich, den Gitignore des Projekts nicht mit einer privaten Konfiguration zu verschmutzen, die nicht spezifisch für den Quellcode des Projekts ist.

amerdidit
quelle
Der letzte Befehl sollte "mv ../.idea_backup .idea" anstelle von "git mv ../.idea_backup .idea" sein, um Git-Fehler zu vermeiden
Leo Caseiro
2
Ich muss tun, git rm .ideaanstatt git add .ideaden Job zu machen
Serge
Ich habe auch addfür geändert, rmaber in meinem Fall musste ich auch hinzufügen -r, um alle rekursiv zu entfernen. git rm -r .idea
jmendiola
2
Wow Danke!! Versuchte dies eine Million verschiedene Wege ohne Erfolg. Dies ist der richtige Schritt-für-Schritt-Ansatz. Der Hauptunterschied, den ich vermisst habe, war sicherzustellen, dass meine IDE geschlossen war - verpassen Sie diesen Schritt nicht! Ausgezeichnete Antwort :)
Jonny Asmar
Vielen Dank! viele, viele Zeit damit verbracht, nach funktionierenden Lösungen zu suchen und mehrere zu versuchen. Dies ist der einfachste Weg, dies zu tun.
Edepe
83

Ich hatte dieses Problem gerade jetzt, ich musste es git rm -f .idea/workspace.xml jetzt tun, es scheint weg zu sein (ich musste es auch hineinstecken .gitignore)

Arkanin
quelle
7
Ich möchte auch nur aus Gründen der Genauigkeit hinzufügen, dass Idea Intellij bei diesen Schritten geschlossen werden sollte.
LoreV
29

Ich musste:

  • Entferne die Datei aus Git
  • Drücken Sie das Commit auf alle Fernbedienungen
  • Stellen Sie sicher, dass alle anderen Committer von Remote aktualisiert wurden

Befehle

git rm -f .idea/workspace.xml
git remote | xargs -L1 git push --all

Andere Committer sollten ausgeführt werden

git pull
Valentin Despa
quelle
7
Obwohl ich mich über diese Antwort freue, kann ich nicht anders, als das Gefühl zu haben, dass es nützlicher wäre, wenn die Anweisungen zum Ausführen der Schritte (z. B. Befehlszeilenanweisungen) enthalten wären.
Flyingace
Checken Sie diesen Link aus: stackoverflow.com/questions/8156299/… . Sieht genauso aus wie das gleiche Problem.
Luca Ballore
IDE herunterfahren \ n git rm -f .idea / workspace.xml \ n git commit -m "workspace.xml entfernen" \ n .gitignore bearbeiten, um workspace.xml auszuschließen \ n IDE öffnen
Srneczek
27

In demselben Verzeichnis, in dem die Datei angezeigt wird, gehen Sie wie folgt vor:

  • rm .idea/workspace.xml
  • git rm -f .idea/workspace.xml (as suggested by chris vdp)
  • vi .gitignore
  • i(zu bearbeiten), fügen .idea/workspace.xmlin einer der Leitungen, Esc,:wq

Du solltest jetzt gut sein

Melski
quelle
2
Oder, um die Zeile zu .gitignore hinzuzufügen, geben Sie einfach ein echo .idea/workspace.xml>>.gitignore. Sie müssen vi nicht für alles öffnen. Alternativ, und was ich tun würde, wäre, eine separate .gitignore-Datei im .idea-Verzeichnis zu haben:echo workspace.xml>>.idea/.gitignore
Godsmith
17

Um .idea/das Git vollständig zu entfernen, ohne Ihre IDE- Konfiguration zu beeinträchtigen, können Sie einfach Folgendes tun:

git rm -r --cached '.idea/'
echo .idea >> .gitignore
git commit -am "removed .idea/ directory"
Johnny Willer
quelle
6

Wenn Sie mehrere Projekte in Ihrem Git-Repo haben, .idea/workspace.xmlwerden diese nicht mit Dateien übereinstimmen.

Gehen Sie stattdessen wie folgt vor:

$ git rm -f **/.idea/workspace.xml

Und lassen Sie Ihren .gitignore ungefähr so ​​aussehen:

# User-specific stuff:
**/.idea/workspace.xml
**/.idea/tasks.xml
**/.idea/dictionaries
**/.idea/vcs.xml
**/.idea/jsLibraryMappings.xml

# Sensitive or high-churn files:
**/.idea/dataSources.ids
**/.idea/dataSources.xml
**/.idea/dataSources.local.xml
**/.idea/sqlDataSources.xml
**/.idea/dynamic.xml
**/.idea/uiDesigner.xml

## File-based project format:
*.iws

# IntelliJ
/out/
kerner1000
quelle
5

Sagen Sie git einfach, dass es nicht davon ausgehen soll, dass es geändert wird, egal was passiert:

git update-index --assume-unchanged src/file/to/ignore

Ja, Sie können die Dateien aus dem Git-Repository entfernen. Aber wenn Ihr Team alle dieselbe IDE verwendet oder Sie alleine sind, möchten Sie das wahrscheinlich nicht. Für Sie selbst möchten Sie einen guten Ausgangspunkt haben, um wieder zu arbeiten, auch für Ihre Teamkollegen.

Toskan
quelle
0

So habe ich es in Android Studio gemacht, das ebenfalls auf IntelliJ basiert. Im Commit-Dialog habe ich die Änderung für workspace.xml zurückgesetzt und sie dann in eine nicht versionierte Datei verschoben. Danach habe ich dies aus dem Commit-Dialog gelöscht. Jetzt wird es nicht mehr in der Änderungsliste angezeigt. Beachten Sie, dass mein Gitignore bereits .idea / workspace.xml enthielt

PK Gupta
quelle
0

Da ich in meinem Fall ein erstes Commit eines Projekts durchgeführt habe, haben das Löschen .gitund .ideaOrdnen und das erneute Initialisieren von Git mithilfe von git initzur Lösung eines Problems beigetragen. Jetzt habe ich überhaupt nicht mehr .idea.

Eduard
quelle
0

Gleiches Problem für mich mit PHPStorm

Schließlich habe ich Folgendes gelöst:

  • Entfernen Sie das Verzeichnis .idea /
  • Bewegen Sie .gitignore auf das gleiche Niveau wird die neue erzeugt werden .idea /
  • Schreiben Sie die Dateien, die Sie ignorieren müssen, und .idea / auch. Um sicherzugehen, dass es ignoriert wird, habe ich Folgendes angegeben:

    • .Idee/
    • .Idee
    • .Idee/*

Ich weiß nicht, warum das so funktioniert. Vielleicht muss .gitignore auf der gleichen Ebene wie .idea sein , damit dieses Verzeichnis ignoriert werden kann.

iDon'tKnoware
quelle
-1

Ignorieren Sie die Dateien mit der Endung .iws, und die workspace.xmlund tasks.xmlDateien in Ihrer .gitignore Referenz

josef
quelle