Welche Dateien sollten sich .gitignore
für ein Android Studio-Projekt in meinem befinden ?
Ich habe mehrere Beispiele gesehen, die alle enthalten, .iml
aber IntelliJ-Dokumente sagen, dass .iml
diese in Ihrer Quellcodeverwaltung enthalten sein müssen.
git
android-studio
gitignore
respektiere den Code
quelle
quelle
Antworten:
Auf Android Studio 3.0 aktualisiert Bitte teilen Sie fehlende Elemente in Kommentaren mit.
Eine späte Antwort, aber keine der Antworten hier und hier war genau das Richtige für uns ...
Also, hier ist unsere Gitignore-Datei:
Seit Android Studio 2.2 und bis 3.0 werden mit dieser Gitignore-Datei neue Projekte erstellt:
Veraltet - Fügen Sie für ältere Projektformate diesen Abschnitt Ihrer Gitignore-Datei hinzu:
Diese Datei sollte sich im Stammordner des Projekts und nicht im Modulordner des Projekts befinden.
Anmerkungen bearbeiten:
Seit Version 0.3+ können Sie anscheinend * .iml- und build.gradle- Dateien festschreiben und pushen . Wenn Ihr Projekt auf Gradle basiert: Im neuen Dialogfeld zum Öffnen / Importieren sollten Sie das Kontrollkästchen
"use auto import"
aktivieren und das Optionsfeld markieren"use default gradle wrapper (recommended)"
. Alle Pfade sind jetzt relativ, wie von @George vorgeschlagen.Aktualisierte Antwort gemäß @ 128KB angehängter Quelle und @ Skela-Vorschlägen
quelle
.iml
Dateien , wenn Sie wan't mit unnötigen Belästigungen beschäftigen , ob andere Benutzer das Projekt anders nennen , wenn sie überprüfen.Aufbauend auf meinem normalen Android .gitignore und nachdem ich die Dokumentation auf der Intellij IDEA-Website gelesen und Beiträge auf StackOverflow gelesen habe, habe ich die folgende Datei erstellt:
Beachten Sie auch, dass der Abschnitt " Erstellte native Dateien " in erster Linie nützlich ist, 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 möglicherweise diese Zeilen (* .o und * .so) aus Ihrem .gitignore entfernen.
quelle
.idea/libraries
? Sollten sie Ihrer Meinung nach geteilt oder ausgeschlossen werden?Aktualisiert 7/2015:
Hier ist die endgültige Quelle von JetBrains
Verzeichnisbasiertes Projektformat (.idea-Verzeichnis)
Dieses Format wird standardmäßig von allen aktuellen IDE-Versionen verwendet. Folgendes müssen Sie teilen:
.idea
Verzeichnis im Projektstamm mit Ausnahme der Dateienworkspace.xml
undtasks.xml
, in denen benutzerspezifische Einstellungen gespeichert sind.iml
Moduldateien, die sich in verschiedenen Modulverzeichnissen befinden können (gilt für IntelliJ IDEA)Seien Sie vorsichtig, wenn Sie Folgendes teilen:
dataSources.ids
,datasources.xml
können Datenbank - Passwörter enthalten. IDEA 14 löst dieses Problem .Sie können erwägen, Folgendes nicht zu teilen:
.idea/libraries
für den Fall, dass sie aus dem Gradle- Projekt generiert werdenLegacy-Projektformat (
.ipr
/.iml
/.iws
Dateien).ipr
und alle.iml
Moduldateien frei. Geben Sie die.iws
Datei nicht frei, da sie benutzerspezifische Einstellungen speichertDiese Anweisungen gelten zwar für IntelliJ IDEA, gelten jedoch zu 100% für Android Studio.
Hier ist ein
.gitignore
Ausschnitt, der alle oben genannten Regeln enthält:quelle
<orderEntry type="jdk" jdkName="1.6 (38)" jdkType="JavaSDK" />
Beachten Sie die Nummer 38, die ständig erhöht zu werden scheint. (Die Datei misc.xml hat auch dieses Problem).Ich bin mit all diesen Antworten nicht einverstanden. Die folgende Konfiguration eignet sich hervorragend für die App unseres Unternehmens.
Ich ignoriere:
/build
/.idea
(mit möglichen Ausnahmen siehe Kommentare in der Antwort von Dalewking )*.iml
local.properties
Ich denke, fast alle sind sich einig
/build
.Ich hatte es satt, ständig Nachrichten über die verschiedenen
library.xml
Dateien zu sehen, die Gradle erstellt oder löscht/.idea
. Dasbuild.gradle
wird auf dem lokalen Entwickler ausgeführt, wenn sie das Projekt zum ersten Mal auschecken. Warum müssen diese XML-Dateien versioniert werden? Android Studio generiert auch den Rest,/.idea
wenn ein Entwickler ein Projekt mit erstelltCheck out from Version Control
. Warum muss also etwas in diesem Ordner versioniert werden?Wenn das
*.iml
versioniert ist, muss ein neuer Benutzer das Projekt genauso benennen, wie es beim Festschreiben war. Da dies auch eine generierte Datei ist, warum sollte sie überhaupt versioniert werden?Die
local.properties
Dateien verweisen auf einen absoluten Pfad im Dateisystem für das SDK, daher sollte es definitiv nicht versioniert werden.Bearbeiten 1 : Hinzugefügt
.gradle
, um das Gradle-Caching-Material zu ignorieren, das nicht versioniert werden sollte (danke Vasily Makarov ).Edit 2 :
.DS_Store
Jetzt hinzugefügt , da ich Mac benutze. Dieser Ordner ist Mac-spezifisch und sollte nicht versioniert werden.Zusätzlicher Hinweis : Sie möchten wahrscheinlich auch ein Verzeichnis hinzufügen, in das Sie Ihre Signaturschlüssel beim Erstellen einer Release-Version einfügen können.
Zum bequemen Kopieren / Einfügen :
quelle
build/
anstelle von/build
, um Modul-Build-Verzeichnisse wie abzugleichenapp/build
. Verwenden Sie.gradle
diese Option, um das Gradle-Caching-Verzeichnis abzugleichen..gitignore
Datei in meinem App-Verzeichnis habe, die auch enthält/build
. Wird das automatisch generiert, kann ich mich nicht erinnern? Giltbuild/
das auch für Unterordner?Ich benutze diesen .gitignore. Ich fand es unter: http://th4t.net/android-studio-gitignore.html
quelle
Im Fall von Android Studio müssen nur die Dateien gespeichert werden, die zum Erstellen der Anwendung über die Befehlszeile mit gradle erforderlich sind. So können Sie ignorieren:
Wenn Sie jedoch IDE-Einstellungen speichern, z. B. benutzerdefinierte Einstellungen für den Codestil, werden diese im Ordner .idea gespeichert. Wenn Sie diese Änderungen in der Versionskontrolle wünschen, speichern Sie auch die IDEA-Dateien (* .iml und .idea).
quelle
Android Studio 3.4
Wenn Sie ein Gradle-Projekt mit Android Studio
.gitignore
erstellen, enthält die Datei Folgendes:.gitignore
Ich würde empfehlen, das vollständige Verzeichnis ".idea" zu ignorieren, da es benutzerspezifische Konfigurationen enthält, die für den Erstellungsprozess nicht wichtig sind.
Gradle-Projektordner
Das einzige, was sich nach dem Klonen des Repositorys in Ihrem (Gradle) Projektordner befinden sollte, ist diese Struktur (zumindest für die Anwendungsfälle, auf die ich bisher gestoßen bin):
Es wird empfohlen, die Gradle-Wrapper-Skripte einzuchecken (siehe hier ).
quelle
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 einen anderen Computer 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 ersten Import des Projekts (von Eclipse nach Android Studio) wurde mein alter Gitignore überschrieben und der neue sah folgendermaßen aus:
Also habe ich versucht, einen leeren Gitignore zu verwenden und jetzt hat es funktioniert. Das andere Android Studio könnte die Dateien und das Projekt laden. Ich denke, einige Dateien sind
(profiles_settings.xml)
für Git und den Import nicht wichtig , aber ich bin einfach froh, dass es funktioniert hat.quelle
Es ist die beste Art und Weise zu erzeugen ,
.gitignore
über hierquelle
Es ist NICHT ERFORDERLICH, der Quellcodeverwaltung Folgendes hinzuzufügen:
So können Sie hgignore oder gitignore entsprechend konfigurieren.
Das erste Mal, wenn ein Entwickler die Quellcodeverwaltung klont, kann Folgendes erfolgen:
Das ist alles
PS: Android Studio erhält dann über maven das Gradle-Plugin, vorausgesetzt, Ihr build.gradle sieht ungefähr so aus:
Android Studio generiert den Inhalt des Ordners .idea (einschließlich der Datei workspace.xml, die sich nicht in der Quellcodeverwaltung befinden sollte, da sie generiert wird ) und des Ordners .gradle.
Dieser Ansatz ist Eclipse-freundlich, da die Quellcodeverwaltung nichts über Android Studio weiß. Android Studio benötigt nur das build.gradle, um ein Projekt zu importieren und den Rest zu generieren.
quelle
There is NO NEED
Ja, es gibt einige Fälle: Copyright-Vorlagen, die beispielsweise von Teammitgliedern gemeinsam genutzt werden müssen.Ich unterstütze das Festschreiben des .idea-Ordners (außer
workspace.xml
undtasks.xml
). Aber ich komme zu dem Schluss, dass .iml-Dateien ignoriert werden sollten.Hier ist das Problem:
Öffnen Sie zum Beispiel ein Projekt in einem Verzeichnis mit dem Namen "foo" und Sie erhalten foo.iml und das scheint alles gut und schön. Das Problem ist, dass wenn ich das Verzeichnis einfach in foo2 umbenenne (oder es in einen anderen Verzeichnisnamen klone), wenn Sie versuchen, das Projekt in Android Studio zu öffnen, Sie drei Dinge erhalten:
Ich kann Android Studio nicht daran hindern, diese IML-Dateigenerierung durchzuführen, wenn das Projekt in einem anderen Verzeichnis gespeichert ist. Das Hinzufügen zur Quellcodeverwaltung führt zu Problemen. Deshalb denke ich vielleicht sollten wir * .iml Dateien und ignorieren
.idea/modules.xml
quelle
/.idea
als auch.iml
Dateien. Ich würde gerne hören, warum der.idea
Ordner festgeschrieben werden sollte.library.xml
Dateien, die immer wieder Nachrichten auslösten. Außerdem verstehe ich nicht, warum immer wieder Leute sagen, dass * .iml-Dateien enthalten sein sollten, also ein großartiger Punkt.Getestet mit Android Studio 3.0
Möglicherweise müssen Sie das .ignore- Plugin installieren .
Sie können die Gitignore-Datei für Android automatisch generieren. Klicken Sie mit der rechten Maustaste auf den Ordner und folgen Sie ihm
Wählen Sie dann im linken Bereich Android aus und klicken Sie auf Generieren
Android Studio generiert eine Gitignore-Datei, die alle zu ignorierenden Dateien enthält.
Entnommen aus http://menukanows.com/how-to-add-gitignore-file-in-android-project/
quelle
Hängt davon ab, wie Ihr Projektformat beibehalten wird:
Sie haben zwei Möglichkeiten:
.idea
Ordner, der die projektspezifischen Dateien enthält).iws
und.ipr
)Ref: http://www.jetbrains.com/idea/webhelp/project.html
Dateien, die der Versionskontrolle übergeben werden, hängen von den oben genannten Bedingungen ab:
workspace.xml
und austasks.xml
.ipr
und alle.iml
Moduldateien schließen die.iws
Datei aus, da sie benutzerspezifische Einstellungen speichert.Ref: https://intellij-support.jetbrains.com/entries/23393067
quelle
Grundsätzlich jede Datei, die automatisch neu generiert wird.
Ein guter Test besteht darin, Ihr Repo zu klonen und festzustellen, ob Android Studio Ihr Projekt sofort interpretieren und ausführen kann (um zu generieren, was fehlt).
Wenn nicht, finden Sie, was fehlt, und stellen Sie sicher, dass es nicht ignoriert, sondern dem Repo hinzugefügt wird.
Davon abgesehen können Sie Beispiele für vorhandene
.gitignore
Dateien wie die für Android verwenden .quelle
Ich bin koscher mit dem Hinzufügen der .iml-Dateien und Intellij sez, um den .idea-Ordner hinzuzufügen, ignoriere aber .idea / workspace.xml und .idea / task.xml, aber was ist mit .idea / library /?
Ich verstehe nicht, wie sinnvoll es ist, dies hinzuzufügen. Es enthält eine Liste von XML-Dateien, in denen Bibliotheken aufgelistet sind, über die das Android Studio-Projekt Bescheid wissen soll. Diese sollen stattdessen aus von build.gradle definierten Abhängigkeiten stammen - nicht aus einer IDE-Projektdatei.
Auch der Inhalt einer dieser Dateien sieht folgendermaßen aus:
Es macht keinen Sinn, dies zu begehen. Was passiert, wenn der Benutzer ein anderes Ausgangsverzeichnis für gradle angegeben hat oder wenn er eine andere gradle-Version verwendet, den Pfad unter
.gradle/caches/artifacts-xxx
für sie unterschiedlich sein (dhartifacts-
die am Ende angehängte Nummer bezieht sich auf die von Ihnen verwendete Version der gradle-Version. ) Diese Wege sind nicht universell, und doch ist der Rat, dies alles einzuchecken?quelle
Ab Android Studio 0.8.4
.gitignore
wird beim Starten eines neuen Projekts automatisch eine Datei generiert. Standardmäßig enthält es:quelle
Ich weiß, dass dies ein altes Thema ist und es sicherlich viele Optionen gibt, aber ich bevorzuge
gibo
Simon Whitaker wirklich . Es ist super einfach zu bedienen, plattformübergreifend (Mac, * nix und Windows) und verwendet das Github-gitignore
Repo, sodass es (im Grunde) immer auf dem neuesten Stand ist.Stellen Sie sicher, dass Ihr lokaler Cache auf dem neuesten Stand ist:
Suchen Sie nach der Sprache / Technologie, die Sie benötigen:
Zeigen Sie die .gitignore-Datei an:
Hängen Sie es jetzt an die Gitignore-Datei Ihres Projekts an:
(
>>
Stellen Sie sicher, dass Sie an die .gitignore-Datei Ihres Projekts anhängen>
wird sie überschreiben - wie ich es bei einem Unfall oft getan habe!)Ich weiß, dass dies nicht die genaue Frage des OP beantwortet, aber die Verwendung von Gibo macht es so, dass Sie so ziemlich nicht mehr über die Frage nachdenken müssen! .. es ist schön! ;)
quelle
Um eine bessere Vorstellung zu bekommen, benötigen Sie lediglich die folgenden Dateien
Sie können alles andere in die .gitignore-Datei einfügen. Alle Ihre App-Änderungen liegen hauptsächlich in diesen Dateien und Ordnern. Der Rest, den Sie in einem Basisprojekt sehen, sind Gradle-Build-Dateien oder Android Studio-Konfigurationsdateien.
Wenn Sie Android Studio verwenden, können Sie "Projekt importieren" verwenden, um das Projekt erfolgreich zu erstellen. Alternativ können Sie über die Befehlszeile erstellen und Android-Projekte mit Gradle erstellen .
quelle
Es ist am besten, die .gitignore-Liste während der Entwicklungszeit zu addieren, um unbekannte Nebenwirkungen zu vermeiden, wenn die Versionskontrolle aus irgendeinem Grund aufgrund der vordefinierten Liste (Kopieren / Einfügen) von irgendwoher nicht funktioniert. Für eines meiner Projekte besteht die Ignorierliste nur aus:
quelle
Github verwaltet nützliche Gitignore-Elemente für verschiedene Arten von Projekten. Hier ist die Liste der nützlichen Gitignore-Elemente für Android-Projekte.
Android Gitignore in Github
quelle
Ich füge Github .gitignore-Dateien zusammen
Bitte lesen Sie: JetBrains-Support: So verwalten Sie Projekte unter Versionskontrollsystemen
quelle
Mit der von gitignore.io bereitgestellten API wird automatisch eine Generierung generiert. Hier ist der Direktlink auch gitignore.io/api/androidstudio
quelle
Ab Android Studio 0.8.4 wird die Gitignore-Datei beim Starten eines neuen Projekts automatisch generiert. Standardmäßig enthält es:
Ich stimme dieser Aussage zu, ändere diese Datei jedoch so, dass sie / build in build / ändert (dies schließt / build und / app / build ein). Daher habe ich nicht alle Dateien in app / build in meinem Repository.
Beachten Sie auch, dass beim Importieren eines Projekts aus Eclipse der Gitignore nicht kopiert oder "automatisch" für Sie erstellt wird.
quelle
Zusammenstellung:
quelle
Um den Import aller Dateien zu umgehen, bei denen Android Studio die Liste "Ignorierte Dateien" ignoriert, aber dennoch Android Studio VCS nutzt, habe ich Folgendes getan: Hiermit wird die Liste "Ignorierte Dateien" aus Android Studio verwendet (nach dem Import! Nicht während) UND vermeiden Sie die umständliche Art und Weise, wie Tortoise SVN die Liste svn: ignore festlegt.
In Zukunft wird "Ignorierte Dateien" ignoriert und Sie können VCS weiterhin von Android Studio aus verwalten.
Prost, -Joost
quelle
Android Studio 3.5.3
Ich benutze dies für meine Bibliotheken und Projekte und es deckt die meisten Dateien ab, die von Android Studio und anderen bekannten Tools generiert werden:
quelle
Dies wird unter Verwendung der Referenz http://gitignore.io/ erstellt. Dort können Sie die neueste aktualisierte Gitignore-Datei für jedes Projekt erstellen. Für Android http://gitignore.io/api/androidstudio . Hoffe das hilft. Derzeit verwende ich Android Studio 3.6.3
quelle
Diese offizielle Dokumentation des JetBrains-Supports besagt, dass Folgendes enthalten sein sollte:
Es gibt auch andere Empfehlungen für Dinge, bei denen Sie vorsichtig sein sollten.
quelle
.gitignore aus der AndroidRate-Bibliothek
quelle
https://github.com/github/gitignore ist eine großartige Sammlung
Android.gitignore
quelle