RSS

OS X 10.8 (Lion): Installation eines Git-Servers

03 Mai

 

Motivation

Ich weiß nicht, ob ich es schon oft genug erwähnt habe 😉 – Pappi hat einen Mac. Nach ein paar Wochen Eingewöhnungszeit, um sich mit den elementaren OS X Funktionen zu beschäftigen, ist es an der Zeit, den Mac mit zusätzlichen Funktionen auszustatten, z.B. mit einem Git-Server. Ich bin immer noch von der Leistung dieses Gerätes beeindruckt und finde, die sollte man auch ausnutzen…

 

Installation Git-Server

  1. Download der aktuellen Version von http://git-scm.com/downloads
    Hinweis: hat man bereits git installiert, kann man die aktuellste Developer-Version auch mit git herunterladen:
    git clone https://github.com/git/git.git

     

  2. Doppelklick auf die Disk-Image-Datei:
    Bildschirmfoto 2013-05-02 um 23.45.26
  3. CTRL-Taste gedrückt halten und auf die pkg Datei klicken > Öffnen > Öffnen
    Bildschirmfoto 2013-05-02 um 23.53.37
  4. Fortfahren > Installieren > Passwort eingeben > Software installieren
    Bildschirmfoto 2013-05-02 um 23.58.15
  5. Terminal öffnen und den Befehl git --version eingeben:
    Bildschirmfoto 2013-05-02 um 23.59.50

Installation Git-GUI-Client

Es gibt eine Fülle an Git-GUI-Clients für alle möglichen Betriebssysteme, u.a. siehe hier: http://git-scm.com/downloads/guis. Den Favoriten muss man letztendlich für sich selbst bestimmen. Da ich selbst erst seit kurzem stolzer Mac Besitzer bin, kann ich auch noch keine Erfahrungsberichte hierzu abgeben. Zudem kommt man früher oder später nicht um das Kommandozeilen-Programm „git“ herum. Man sollte sich deshalb überlegen, ob es überhaupt sinnvoll ist, mit einem git-GUI-Client zu arbeiten.

Um trotzdem ein Beispiel zu nennen, empfehle ich den (aktuell) freien Client SourceTree, der für OS X und Windows verfügbar ist.

 

Konfiguration Git-Server

Für meinen Git-Server will ich SSH (Secure Shell) Zugriff und Multi-User-Zugriff konfigurieren.

SSH freigeben

  1. In den Systemeinstellungen auf „Freigaben“ klicken:
    Bildschirmfoto 2013-05-03 um 00.42.05
  2. „Entfernte Anmeldung“ aktivieren:
    Bildschirmfoto 2013-05-03 um 00.49.25
    Hinweis: Will man nur für bestimmte Benutzer eine Remote-Anmeldung ermöglichen, dann kann man das im Bereich „Zugriff erlauben für“ einstellen!

Git-Admin und Developer Accounts einrichten

Man könnte einen Account „git“ für alle Entwickler einrichten, oder für jeden Entwickler einen eigenen Account und diese einer gemeinsamen Gruppe (z.B. „git“ oder „developer“) zuordnen. Wegen der Nachvollziehbarkeit der einzelnen Aktivitäten, habe ich mich für die zweite Variante entschieden.

  1.  Systemeinstellungen aktivieren und „“ auswählen:
    Bildschirmfoto 2013-05-03 um 01.02.03
  2. Neue Gruppe „git“ anlegen: + 
    Bildschirmfoto 2013-05-03 um 01.03.55
  3. Git-Admin-Account „git“ anlegen: +
  4. Accounts für die Entwickler anlegen: +
  5. Git-Admin und Entwickler der Gruppe „git“ zuweisen:
    Bildschirmfoto 2013-05-03 um 01.12.40
  6. SSH Zugriff erlauben: 
    Will man nur bestimmten Personen Zugriff auf den Server per SSH erlauben, kann man dies unter „Entfernte Anmeldung“ aktivieren einrichten.
  7. Für jeden Entwickler im Home-Verzeichnis eine Datei „.bashrc“ anlegen bzw. mit folgender Zeile erweitern:
    export PATH=$PATH:/usr/local/git/bin/

 

Server-Repository erstellen

Für alle Aufgaben im zentralen Git-Repository verwenden wir den zuvor angelegten Benutzer „git“.

Man legt für diesen User ein Hauptverzeichnis „repo“ an unter dem alle Repositories als Unterverzeichnisse abgelegt werden.

Beispiel:

su – git

mkdir ~/repositories

cd repositories

Danach erstellt man für jedes Projekt ein leeres Unterverzeichnis und ordnet es der entsprechenden Gruppe zu.

mkdir testprojekt.git

sudo chgrp git testprojekt.git

sudo chmod g+rws testprojekt.git

cd testprojekt.git

Hinweis: Es ist weit verbreitet, das zentrale Repositories mit dem Suffix „.git“ zu versehen, um sie als Git-Repositories kenntlich zu machen.

Danach initialisiert man das zentrale Repository mit dem Befehl „init“ und dem Schalter „bare“: Damit vermeidet man, dass eine Arbeitskopie erstellt wird und damit unnötige Git-Hilfsdateien erzeugt werden. Das zentrale Repository ist dann auch nicht dafür geeignet, direkt damit zu arbeiten. Man muss vorher das entsprechende Projekt auf einem Client auschecken, also ein lokales Git-Repository erzeugen. Zusätzlich wird noch der Schalter „—shared“ mitgegeben, damit können alle Gruppenmitglieder auf das Repository zugreifen.

sudo git init –bare –shared

 

Test

Beispielsweise von einem Linux-Client auf das Test-Repository auf dem Server zuzugreifen. Voraussetzung: der Entwickler wurde auf dem iMac eingerichtet und darf sich per SSH einloggen

Client:

  1. Lokales Projektverzeichnis anlegen: mkdir ~/projects
  2. und hineinwechseln: cd projects
  3. Testprojekt clonen:
    juergen@vostro ~/projects $ git clone juergen@imac:~git/repositories/testprojekt.git
    Cloning into ‚testprojekt’…
    Password:

    warning: You appear to have cloned an empty repository.

 

Fazit

Das Einrichten von Git ist nicht besonders kompliziert, im Grunde ähnlich, wie auf Linux-Derivaten. Auch die benötigte Software ist einfach erhältlich. Wer also die Vorteile eines Config-Management-Systems nutzen will, kann dies mit der freien Software „git“ auch auf dem Mac tun. Ich nutze die Versionskontrolle nicht nur für die Software-Entwicklung, sondern auch für Dokumente, Fotos etc. Besonders beim Projekt-Management, bei dem eine Vielzahl von Dokumenten ständigen Änderungen unterworfen sind, macht meiner Meinung nach eine Versionskontrolle, Sinn.

  

Links

REW: Kurzanleitung “Fit für Git” 😉 

REW: Git: Quick Guide: Arbeiten mit Remote-Repositories

 

Schlagwörter: ,

Hinterlasse einen Kommentar