git – Einfach und schnell zur Versionskontrolle

Angenommen ihr wollt eure Projekte mit einem guten Source Code Management (SCM) Tool verwalten. Und angenommen ihr wollte keine aufwendige Installation durchführen. Dann werdet ihr schnell bei git im Lokalen Netzwerk landen Zwinkerndes Smiley

Entweder weil ihr z.B. nicht den Luxus besitzt private Repositories in der Cloud zu hosten. Oder ihr in eurer Firma gegen ein SVN die Quellen einchecken müsst und trotzdem mit Kollegen arbeiten wollt. Oder euch das für euer Allerheiligstes das Internet zu unsicher ist. Na wie dem auch sei. Angenommen ihr wollte ein SCM aufsetzen…

Der schnellste Weg zum git “Server” unter Windows:

msysgit downloaden und installieren. Ich bevorzuge mittlerweile die Portable Version, da ich nur an den git Kommandos interessiert bin, und ich dann nicht jedes mal neu installieren muss, wenn es ein Update gibt. Dazu muss das Verzeichnis PortableGit*\cmd zur Umgebungsvariable PATH hinzugefügt werden.

Erstellt euch dazu einfach ein Startskript:

  1. Batch
    1. set PATH = %PATH%;[PortableGit*\cmd]
  2. Powershell
    1. $env:PATH += “;[PortableGit*\cmd]”

Danach könnt ihr git von der Konsole aus nutzen. Wenn ihr lieber eine Installation bevorzugt … nehmt sie. Das war im Prinzip auch schon alles was ihr braucht. Für den Server brauchen wir nichts, denn alles lokal auf eurem Rechner läuft. Ihr braucht nur noch ein Datensilo im Netz, falls überhaupt notwendig. Ansonsten, solange ihr alleine seid, einfach das Verzeichnis mit in euer Backup legen. Wie gehts also weiter?

  1. Projekteverzeichnis erstellen
    1. $ mkdir myrepo
    2. $ cd myrepo
  2. Repository initialisieren (gitflow empfohlen)
    1. $ git flow init
    2. Standards übernehmen die abgefragt werden oder individuell anpassen
    3. Ansonsten, wenn ihr kein gitflow nehmt, einfach ein $ git init
  3. Repository vorbereiten
    1. Initiale Dateien (z.B. README) und andere Verzeichnisse erstellen und zum Verzeichnis hinzufügen
    2. $ git add .
    3. $ git commit -a -m “added README”
  4. Zentrales “Server” (Remote) Verzeichnis erstellen
    1. $ git clone ./myrepo myrepo.git –bare
    2. danach entweder
      1. lokal lassen und ins Backup mit aufnehmen
      2. oder auf den Server kopieren auf dem ihr einen SSH Zugang habt
  5. Lokals Repositor behalten
  6. oder myrepo löschen und
  7. Vom Remote nochmal (lokal oder Server) klonen
    1. entweder lokal $ git clone [url_to_]myrepo.git

Wenn ihr euch für das löschen (Punkt 6.) entschieden habt oder dann doch mal mit Kollegen/Freunden/Spezialisten kollaborieren wollt (die dank Punkt 7. ausführen), sind noch ein paar Arbeitsschritte für diese notwendig. Wenn ihr mit gitflow arbeitet müsst ihr noch eine kleine Anpassung durchführen. gitflow kann bis jetzt nicht damit umgehen ein geklontes Repository richtig zu initialisieren, da diesem der master fehlt. Dazu müssen wir den master Branch vom Remote nach lokal auschecken und tracken! Das geht ganz schnell per

$ git checkout -t origin/master

$ git flow init

Nun habt ihr ein Rezept mit dem ihr

  • lokal in 10 Minuten ein SCM augebaut habt
  • das jederzeit ohne Aufwand ins Netzwerk schieben könnt
  • mit etwas zusätzlichem Aufwand (SSHs für die Nutzer anlegen) auf einem Linux Server eine Nutzerverwaltung anlegen
  • und dann zusammen auf einem gemeinsamen GIT Repository arbeiten

Wenn ihr sowieso schon unter Linux unterwegs seid, dann folgt den Anweisung von ProGit; 4.2 Getting Git on a Server (das sollte sowieso jeder gelesen haben).

Viel Spaß beim clonen, pullen, pushen, fetchen, branchen.

Less work, more success!

 

P.S.: Heute Abend beim Buchbummel durch den ansässigen Thalia Shop bei GIT – Kurz & Gut hängen geblieben. Dabei festgestellt, das obiges Rezept ähnlich so ziemlich am Anfang des Buches steht. Danach hab ich gleich einmal in dem Buch geschmökert und muss sagen es gefällt mir. Name ist Programm: Kurz & Gut. Nicht viel neues, aber kompakt. Mal schauen. Ich denke für den 10er werde ich es mir noch holen.

Published Mittwoch, 21. Dezember 2011 20:45 von Rainer Schuster
Abgelegt unter: ,

Kommentare

Keine Kommentare

Kommentar abgeben

(verpflichtend) 
(verpflichtend) 
(optional)
(verpflichtend)