Git Remote Repository im Android Studio einrichten

Beim Erstellen meiner ersten produktiven Android App bin ich auf ein kleines Problem gestoßen, das mich gleich zu Beginn drei Stunden meiner Lebenszeit gekostet hat. Damit euch das nicht auch passiert und ihr nicht ewig rumprobieren und in den Tiefen der Internetforen suchen müsst, hier eine kleine Anleitung, wie man ein Projekt im Android Studio mit einem Git Remote Repository verbindet.

Was soll erreicht werden?

Wer programmiert und seine Sourcen sauber sichern und versionieren möchte, der legt sie üblicherweise in einem Repository wie CVS oder Git ab. Aber nicht nur das. Idealerweise liegt die Sicherung nicht auf dem Entwicklungsrechner selbst, sondern auf einem anderen Rechner oder Server. In meinem Fall ist das eine Synology Diskstation. Wenn ich ein neues Projekt beginne, dann richtie ich zunächst immer erst das CVS ein, bevor ich mit der Programmierarbeit anfange. Nach einem entwicklungsreichen Tag oder wenn ich wichtige Meilensteine erreicht habe, pushe ich die Sourcen dann auf den Server ins Repository.

Das soll nun auch mit meinen Sourcen für die Android App passieren. Aber da gibt es bei der Einrichtung ein paar Dinge zu beachten, die man mit unter nicht so leicht erkennt.

Git Remote Repository im Android Studio einrichten

1. Repository auf dem Server einrichten

Zunächst sollte man ein leeres Git Repoitory auf dem Server einrichten. Dazu verbinden wir uns mit einer SSH Konsole auf den Server und geben im gewünschten Ordner den folgenden Befehl ein.

mkdir MeineErsteApp.git
cd MeineErsteApp.git
git init --bare --shared

Mein Repository liegt beispielsweise im Ordner /volume1/git/. Die Endung .git sollte gewählt werden. Das deutet immer auf ein Root-Repository hin, ist aber nicht zwingend notwendig.

2. Neues Projekt in Android Studio anlegen

Gesagt, getan. Legen wir ein neues Projekt im Android Studio an und nennen es MeineErsteApp.

Android Studio Neues Projekt anlegen
Android Studio Neues Projekt anlegen

Der Rest ist erstmal egal. Klicke auf weiter, bis das Projekt angelegt wird. Nachdem das Projekt angelegt wurde, sollte das Android Studio ungefähr so ausschauen:

Projekt Angelegt
Projekt Angelegt

3. Lokales Git Reository anlegen und committen

Jetzt legen wir ein lokales Git Repository an. Dieses wird danach erst später mit dem Remote-Repository verknüpft.
Um das lokale Repository anzulegen, aktivieren wir zunächst die CVS Funktionen. Dies geschieht über das Menü VCS->Enable Version Control Integration…
VCS aktivieren
VCS aktivieren

Im danach aufpoppenden Dialog wählen wir Git aus und bestätigen mit OK.

Git auswählen
Git auswählen

In diesem Augenblick hat das Android Studio schon ein lokales aber noch leeres Git Repository angelegt. Das erkennt man auch an dem Ordner .git im Projektordner der App.

Versteckter .git Ordner
Versteckter .git Ordner

Nun fügen wir das Projekt dem lokalen Git Repository hinzu. Dazu klicken wir oben links mit der rechten Maustaste auf den Projektnamen und wählen dann das Menü Git -> +Add.

Projekt zum git Repository hinzufuegen
Projekt zum git Repository hinzufuegen

Es passiert anscheinen erstmal nichts, aber in diesem Augenblick hat das Studio die Projektdateien zum Repository hinzugefügt.

Als letzten Schritt committen wir die Änderungen sodass der aktuelle Stand unserer Sourcen in das lokale Repository übernommen werden. Das geschieht erneut über einen Rechtsklickt auf den Projektnamen und Auswahl des Menüs Git -> Commit Directory….

Projekt committen
Projekt committen

Im sich nun öffnenden Dialog geben wir zunächst eine Commit Message ein. Ich empfehle jedem eindringlichst, bei jedem Commit eine Meldung einzugeben. Idealerweise ist das eine Beschreibung aller Änderungen, die seit dem letzten Commit durchgeführt wurden. Ich habe mir zusätzlich angewöhnt, alles in English zu verfassen. Das ist in der Programmierung üblich und trainiert außerdem ungemein.

Hier noch ein wichtiger Hinweis. Bitte den Haken bei “Perform code analysis” entfernen. Bei mir führte das dazu, dass der Commit nicht funktionierte. Und nachdem ich das 30ste mal auf Commit geklickt habe und nichts passiert ist, wurde wieder die (zeitintensive) Internet- und Forensuche aktiviert.

Commit Dialog
Nicht vergessen eine Commit Message einzugeben und den Haken bei “Perform code analysis” zu entfernen.

So, damit haben wir das lokale Repository eingerichtet.

4. Mit Remote Repsotitory verbinden

Dieser Schritt ist der spannendste und einfachste zugleich, obwohl er mich eben die meiste Zeit gekostet hat. Aber egal. Hier die Lösung. Klicken wir erneut mit der rechten Maustaste auf das Projekt links oben und wählen das Menü Git->Repository->Push…

Git->Repository->Push wählen
Git->Repository->Push wählen

Im nun erscheinenden Dialog klicken wir auf “define remote” und geben unsere URL zum Remote Repository ein. in meinem Fall wäre das

ssh://benutzername@192.168.xx.xx/volume1/git/MeineErsteApp.git

Benutzername steht für den User, mit dem auf den Server zugegriffen wird. Ich habe dafür eigens einen eingerichtet. Man kann aber auch den root (nicht zu empfehlen) oder admin (auch nicht zu empfehlen) nehmen. 192.168.xx.xx steht für die korrekte IP-Adresse der Diskstation. Hier muss man natürlich die korrekte IP-Adresse eintragen.

Hat man die URL eingegeben und bestätigt den Dialog mit OK, muss noch das Passwort des Benutzers eingeben. Android Studio speichert diese Logindaten in einen Passwortmanager an. Ggf. muss zuvor das Masterpasswort für den Passwortmanager definiert und eingegeben werden. Aber das sollte kein Problem sein.

So, dass war es dann auch schon. Ich hoffe das hilft dem Einen oder Anderen etwas und spart Zeit und Nerven.

Was habe ich installiert?

Damit du die gleichen Voraussetzungen schaffen kannst, wie ich, hier eine kurze Info, welche Sachen ich installiert habe, damit das alle reibungslos funktioniert:

  • Windows 10 mit Android Studio
  • Git for Windows (64Bit)
  • Tortoise Git (Integration von Git in den Windows Explorer – sollte aber nicht nötig sein)
  • Putty oder MobaXTerm als Tool für den SSH Konsolenzugriff auf die Diskstation

 

 

3 Gedanken zu „Git Remote Repository im Android Studio einrichten“

  1. Tolle Anleitung. Vielen Dank dafür:)

    Eine Frage zu Punkt 4: Kann es sein, dass der “Git-User” auf der Synology ein Administrator sein muss? Normale Nutzer können ja nicht mit SSH auf der Synology arbeiten, dementsprechend kann Android-Studio auch keine Verbindung per SSH herstellen.
    Habe einen normalen Benutzer eingerichtet und auch das entsprechende Häkchen im Git-Server gemacht, geht trotzdem leider nicht. Wenn mein “Git-User” aber ein Administrator sein muss, dann widerspricht das deiner Aussage: “Man kann aber auch […] admin (auch nicht zu empfehlen) nehmen”
    Was ist jetzt richtig?

  2. Hallo Bernd, leider hänge ich bei Punkt 4 fest und bekomme nur die Fehlermeldung “can’t push no remotes defined”.
    Leider erscheint dort aber kein Dialog define remote? Welche Lösungen gibt es sonst oder wo kann ich es von Hand hinzufügen?

    1. Hallo Raimund,
      das ist seltsam. Ich habe es eben noch einmal mit einem neuen Android Projekt probiert. Ich verwende das Android Studio in der Version 2.2.3.
      Nachdem ich das Repository angelegt habe und das erste Commit erfolgreich war, klicke ich auf das Push-Menü und es erscheint der Push Dialog.

      Versuche es am besten noch einmal von vorne. Dazu schließt du das Android Studio und löschst den .git Ordner im Projektordner. (Ggf. muss du aber erst die versteckten Ordner und Dateien einblenden, sonst siehst du den .git Ordner nicht). Jetzt starte das Studio erneut und öffne das Projekt. Das Studio weist jetzt auf eine Fehlkonfiguration hin. Klicke auf die Meldung und lösche im Einstellungen Dialog die aktuelle Zeile.
      Jetzt versuche die git Funktion erneut zu aktivieren, das Projekt über +Add hinzuzufügen, dann Committen und zuletzt das Push-Menü aufzurufen.
      Wenn es jetzt noch immer nicht geht, dann weiß ich im Augenblick leider auch nicht weiter. Ich würde dann das Studio nochmal deinstallieren und neu aufsetzen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert