Im Gegensatz zu Netbeans werden in Jetbrains IDEs die Einstellungsdateien, die sich auf Benutzer und Team beziehen, in demselben Ordner abgemischt, was es schwierig macht, wenn Sie sie zum Git drücken müssen.
Es gibt eine Reihe von Beispielen für git ignore-Dateien für diese IDEs und https://intellij-support.jetbrains.com/hc/articles/206544839 page auf git site.
Nachdem wir sie jedoch für ein paar Monate verwendet haben, stellen wir fest, dass es sicherer und bequemer ist, das Gegenteil zu tun. Ich meine, alle .idea
-Dateien ignorieren und explizit nur teambezogene Einstellungen hinzufügen. (anstatt alles hinzuzufügen und einige zu ignorieren).
Die Hauptsache, die von Entwicklern gemeinsam genutzt werden kann, sind Code-Style-Konfigurationen. Bei Verwendung der automatischen Umformatierungsoption IDE folgt das gesamte Team einem einheitlichen Stil.
Abgesehen davon ist die Frage, welche anderen Dateien erneut aufgenommen und nicht ignoriert werden sollen. Warum?
antwort: Ich kam dazu: https://github.com/salarmehr/idea-gitignore
Nach einiger Untersuchung habe ich folgende .idea/.gitignore
-Datei gefunden:
# ignore all .idea files ...
*
# except ...
# Version Control configuration
!vcs.xml
# how IDEA should treat the text files
!encodings.xml
# automatic code formatting
!codeStyleSettings.xml
# project specific words
!dictionaries
!copyrights
!misc.xml
!sqldialects.xml
Die obigen Dateien sollten für alle Teammitglieder praktisch identisch sein.
antwort: Ich kam dazu: https://github.com/salarmehr/idea-gitignore
Jetbrains hat einige offizielle Hinweise auf welche Dateien sollte nicht eingecheckt werden und welche Dateien sollten nicht eingecheckt werden, abhängig von Ihrer Verwendung. Gemäß dieser Seite sollten Sie alle Dateien im Verzeichnis .idea
einchecken, außer:
workspace.xml
tasks.xml
Und wahrscheinlich auch:
dictionary
Während die jeweilige Antwort von den speziellen Vorgehensweisen Ihres Teams abhängen kann, führt das Befolgen dieser Anleitung meiner Erfahrung nach im Allgemeinen zu einer korrekten Trennung der Benutzereinstellungen und der gemeinsamen Projektkonfiguration.
Einige Beispiele für Dateien, die sollte gemäß diesen Anweisungen gemeinsam genutzt werden sollen:
ant.xml
, wenn Sie Ihr Projekt mit Ant erstellen, zeigt IDEA auf Ihre Build-Dateien und konfiguriert Eigenschaften, die zum Erstellen verwendet werden sollen.vcs.xml
, der die Version Control-Konfiguration für Ihr Projekt angibtencodings.xml
gibt an, wie IDEA die Textdateien in Ihrem Projekt behandeln sollmodules.xml
, der auf IDEA auf jede Modulkonfigurationsdatei Ihres Projekts verweist, die auch in Ihrem VCS freigegeben werden sollte.runConfigurations
, in denen IDEA angegeben wird, was zum Ausführen der Anwendung erforderlich istcodeStyleSettings.xml
, der, wie Sie angedeutet haben, Ihr gesamtes Team in Bezug auf die automatische Code-Formatierung auf die gleiche Seite bringtJe nach Nutzung Ihres Teams kann es mehr oder weniger geben, aber dies sind einige der größten Beispiele.
Ich ziehe es vor, den .idea
-Ordner oder die .iml
-Dateien überhaupt nicht einzuchecken.
.editorconfig
-Datei in Betracht ziehen. Die JetBrains-IDEs unterstützen diese jetzt.maven
oder gradle
build-Dateien, um bestimmte Setups durchzuführen.Es wird empfohlen, nicht den gesamten .idea
-Ordner festzuschreiben, da dies für Konfigurationen gilt. Wie die *.iml
-Datei.
Wenn ich Netbeans anstelle von Intellij verwende, möchte ich diese Konfigurationsdateien nicht. Es ist nutzlos und vielleicht ein wenig gefährlich für Konflikte.
Ich verwende sowohl IDEA als auch Eclipse, aber keine Netbeans. Ich nie setze keine Projektdateien ein, aber stellen Sie sicher, dass ich ein Maven-Build als führendes Werkzeug habe. Dann kann ich das Maven-Projekt problemlos in jedes IDE mit Maven-Unterstützung importieren und auch von Maven aktualisieren, sobald ich es geändert habe es. Für Eclipse und IDEA funktioniert das wunderbar.
Meine .gitignore -Datei sieht für alle meine Projekte folgendermaßen aus:
# Eclipse
.settings/
.classpath
.project
# IntelliJ IDEA
.idea/
*.iml
# Maven
target/
Plus andere projektspezifische Dateien oder Verzeichnisse.