Frage Was sollte in meinem .gitignore für ein Android Studio-Projekt sein?


Welche Dateien sollten in meinem sein? .gitignore für ein Android Studio-Projekt?

Ich habe mehrere Beispiele gesehen, die alle enthalten .iml aber IntelliJ Docs sagen das .iml muss in Ihrer Quellcodeverwaltung enthalten sein.


1056
2018-05-24 14:04


Ursprung


Antworten:


Auf Android Studio 3.0 aktualisiert Bitte teile fehlende Gegenstände in Kommentaren.

Eine späte Antwort, aber keine der Antworten hier und Hier war direkt auf das Geld für uns ...

Also, hier ist unsere Gitignore-Datei:

#built application files
*.apk
*.ap_

# files for the dex VM
*.dex

# Java class files
*.class

# generated files
bin/
gen/

# Local configuration file (sdk path, etc)
local.properties

# Windows thumbnail db
Thumbs.db

# OSX files
.DS_Store

# Android Studio
*.iml
.idea
#.idea/workspace.xml - remove # and delete .idea if it better suit your needs.
.gradle
build/
.navigation
captures/
output.json 

#NDK
obj/
.externalNativeBuild

Seit Android Studio 2.2 und bis zu 3.0 werden neue Projekte mit dieser Gitignore-Datei erstellt:

*.iml
.gradle
/local.properties
/.idea/workspace.xml
/.idea/libraries
.DS_Store
/build
/captures
.externalNativeBuild

Veraltet - Für ein älteres Projektformat fügen Sie diesen Abschnitt Ihrer Gitignore-Datei hinzu:


/*/out
/*/*/build
/*/*/production
*.iws
*.ipr
*~
*.swp

Diese Datei sollte sich im Stammordner des Projekts und nicht im Modulordner des Projekts befinden.

Notizen bearbeiten:

  1. Seit der Version 0.3+ scheint es, dass Sie Commit und Push machen können * .iml und build.gradle Dateien. Wenn Ihr Projekt auf Gradle basiert: Im neuen Öffnen / Importieren-Dialog sollten Sie das Häkchen setzen "use auto import" Kontrollkästchen und markieren Sie die "use default gradle wrapper (recommended)" Radio knopf. Alle Pfade sind jetzt relativ, wie @ George vorgeschlagen hat.

  2. Aktualisierte Antwort gemäß @ 128KB angehängte Quelle und @Skela Vorschläge


1148
2017-07-23 07:29



Aufbauend auf meinem normalen Android .gitignoreNach dem Lesen der Dokumentation auf der Intellij IDEA-Website und dem Lesen von Posts auf StackOverflow habe ich folgende Datei erstellt:

# built application files
*.apk
*.ap_

# files for the dex VM
*.dex

# Java class files
*.class

# built native files (uncomment if you build your own)
# *.o
# *.so

# generated files
bin/
gen/

# Ignore gradle files
.gradle/
build/

# Local configuration file (sdk path, etc)
local.properties

# Proguard folder generated by Eclipse
proguard/

# Eclipse Metadata
.metadata/

# Mac OS X clutter
*.DS_Store

# Windows clutter
Thumbs.db

# Intellij IDEA (see https://intellij-support.jetbrains.com/entries/23393067)
.idea/workspace.xml
.idea/tasks.xml
.idea/datasources.xml
.idea/dataSources.ids

Beachten Sie auch, wie bereits erwähnt, die native Dateien erstellt Abschnitt ist in erster Linie nützlich, wenn Sie Ihren eigenen nativen Code mit dem Android NDK erstellen. Wenn Sie andererseits eine Bibliothek eines Drittanbieters verwenden, die diese Dateien enthält, möchten Sie diese Zeilen (* .o und * .so) möglicherweise aus Ihrem .gitignore entfernen.


137
2018-01-10 16:23



Stand 7/2015:

Hier ist das definitive Quelle von JetBrains


Verzeichnisbasiertes Projektformat (.idea-Verzeichnis)

Dieses Format wird standardmäßig von allen aktuellen IDE-Versionen verwendet. Hier ist was du teilen musst:

  • Alle Dateien unter .idea Verzeichnis im Projektstammverzeichnis außer das workspace.xml und tasks.xml Dateien, die benutzerspezifische Einstellungen speichern
  • All die .iml Moduldateien, die sich in verschiedenen Modulverzeichnissen befinden können (gilt für IntelliJ IDEA)

Achtung über das Teilen von:

  • Android-Artefakte, die einen signierten Build erzeugen (Keystore-Passwörter enthalten)
  • In IDEA 13 und früher dataSources.ids, datasources.xml Kann Datenbankkennwörter enthalten. IDEE 14 behebt dieses Problem.

Sie können Folgendes nicht teilen:

  • Gradel.XML-Datei, siehe diese Diskussion
  • Benutzerwörterbuchordner (um Konflikte zu vermeiden, wenn ein anderer Entwickler denselben Namen hat)
  • XML-Dateien unter .idea/libraries falls sie es sind generiert von Gradle Projekt

Legacy-Projektformat (.ipr/.iml/.iws Dateien)

  • Teile das Projekt .ipr Datei und alle .imlModuldateien, nicht teilen das .iws Datei, wie es benutzerspezifische Einstellungen speichert

Während diese Anweisungen für IntelliJ IDEA gelten, gelten sie zu 100% für Android Studio.


Hier ist ein .gitignore Snippet, das alle oben genannten Regeln enthält:

# Android Studio / IntelliJ IDEA 
*.iws
.idea/libraries
.idea/tasks.xml
.idea/vcs.xml
.idea/workspace.xml

70
2017-08-26 22:45



Ich stimme all diesen Antworten nicht zu. Die folgende Konfiguration funktioniert hervorragend für die App unserer Organisation.

Ich ignoriere:

  • /build
  • /.idea (mit möglichen Ausnahmen, siehe Kommentare in Dalewkins Antwort)
  • *.iml
  • local.properties

Ich denke, fast jeder stimmt zu /build.

Ich hatte es satt, ständig Nachrichten über die verschiedenen Dinge zu sehen library.xml Dateien, die Gradle erstellt oder löscht /.idea. Das build.gradle Wird beim ersten Auschecken des Projekts auf dem lokalen Verzeichnis der Entwickler ausgeführt. Warum müssen diese XML-Dateien also versioniert werden? Android Studio generiert auch den Rest von /.idea wenn ein Entwickler ein Projekt mit erstellt Check out from Version ControlWarum muss irgendetwas in diesem Ordner versioniert werden?

Wenn die *.iml Ist ein neuer Benutzer versioniert, muss er das Projekt genau so benennen, wie er es beim Festschreiben war. Da dies auch eine generierte Datei ist, warum sollte sie in erster Linie versioniert werden?

Das local.properties files zeigt auf einen absoluten Pfad im Dateisystem für das SDK, daher sollte es definitiv nicht versioniert werden.

Bearbeiten 1: Hinzugefügt .gradle die Gradle Caching Sachen zu ignorieren, die nicht versioniert werden sollten (danke Wassili Makarow).

Bearbeiten 2: Hinzugefügt .DS_Store Jetzt, wo ich Mac benutze. Dieser Ordner ist Mac-spezifisch und sollte nicht versioniert werden.

Zusätzliche Anmerkung: Wahrscheinlich möchten Sie auch ein Verzeichnis hinzufügen, in das Sie Ihre Signaturschlüssel beim Erstellen einer Release-Version einfügen können.

Zum Kopieren / Einfügen:

.gradle
/build
/.idea
*.iml
local.properties
.DS_Store 

34
2017-07-10 14:57



Ich benutze das. Gitignore. Ich habe es gefunden bei: http://th4t.net/android-studio-gitignore.html

*.iml
*.iws
*.ipr
.idea/
.gradle/
local.properties

*/build/

*~
*.swp

32
2018-05-21 10:53



Im Fall von Android Studio sind die einzigen Dateien, die in der Versionskontrolle gespeichert werden müssen, die Dateien, die zum Erstellen der Anwendung über die Befehlszeile mithilfe von Gradle erforderlich sind. So können Sie ignorieren:

  • * .iml
  • .Idee
  • bauen

Wenn Sie jedoch IDE-Einstellungen speichern, z. B. benutzerdefinierte Codestileinstellungen, werden diese im Ordner .idea gespeichert. Wenn Sie diese Änderungen in der Versionskontrolle möchten, dann würden Sie auch die IDEA-Dateien (* .iml und .idea) speichern.


30
2018-05-24 15:11



Mein Rat wäre auch, den .idea-Ordner nicht zu ignorieren.

Ich habe ein Git-basiertes Eclipse-Projekt in Android Studio importiert und das ging gut. Später wollte ich dieses Projekt mit Git (wie beim ersten Mal) auf eine andere Maschine mit Android Studio importieren, aber das hat nicht funktioniert. Android Studio hat zwar alle Dateien geladen, konnte das Projekt jedoch nicht als Projekt "sehen". Ich konnte nur Git-Dateien öffnen.

Beim Importieren des Projekts zum ersten Mal (von Eclipse in Android Studio) wurde mein altes .gitignore überschrieben und das neue sah folgendermaßen aus:

  • .idea / .name
  • .idea / compiler.xml
  • .idea / copyright / profile_settings.xml
  • .idea / encodings.xml
  • .idea / libraries / libs.xml
  • .idea / misc.xml
  • .idea / modules.xml
  • .idea / bereiche / scope_settings.xml
  • .idea / vcs.xml
  • .idea / workspace.xml

Also habe ich versucht, einen leeren Gitignore zu benutzen und jetzt hat es funktioniert. Das andere Android Studio könnte die Dateien und das Projekt laden. Ich denke, einige Dateien sind nicht wichtig (profiles_settings.xml) für Git und importieren, aber ich bin nur froh, dass es geklappt hat.


16
2018-06-21 00:35