git

Verteilte Versionsverwaltung von Dateien

Martin Schlüter

3 Minuten

Git ist eine freie Software zur verteilten Versionsverwaltung von Dateien. Git wurde von Linux Entwickler Linus Torvald entwickelt weil die bisher verwendete Quellcode Management Software nicht mehr kostenlos nutzbar war und es keine andere Software gab die seine Ansprüche erfüllte. Git ist heutzutage die am meisten verwendete Software zur Versionsverwaltung.

Start eines Projektes mit git

sobald git auf dem Computer installiert ist, kann man auf der commandozeile in das Projektverzeichnis wechseln und per

git init

das Repository anlegen, dabei wird der Master Zweig (branch) angelegt und man kann an ihm arbeiten, wenn man dann ein paar Änderungen gemacht hat, können die neuen Dateien dem Repository hinzugefügt und commitet (bestätigt) werden:

git add datei1 datei2 datei3
git commit -m "kurze Beschreibung was geändert wurde"

Das erstellt dann einen Speicherpunkt zu dem man später jederzeit auch wieder zurückwechseln kann. Anstatt alle Dateien einzeln aufzulisten kann man mit einem

git add .

auch alle geänderten Dateien dem Commit hinzufügen.

mehrere Zweige (branches)

Wenn man ein Projekt dann so weit hat dass es eingesetzt werden kann, kann man für weitere Entwicklung neuer Features mit

git checkout -b neuerzweig

einen neuen Branch namens “neuerzweig” erstellen und direkt zu ihm wechseln, alle Dateien des masters Zweigs sind dann im neuen Branch auch erhalten, mit stand vom Zeitpunkt der Erstellung des neuen Zweigs. Am master Branch werden dann erstmal nur noch Fehler beseitigt, während die weitere Entwicklung im neuen Branch durchgeführt werden. Per

git checkout master

kann man jederzeit wieder in den master branch wechseln. Das “-b” beim ersten Mal diente zum erstellen des neuen Branch. So ist es nun möglich beliebig zwischen den Branches (Zweigen) zu wechseln.

Sobald die neuen Features dann im neunen Branch fertig entwickelt wurden und es bereit zum Einsatz ist kann man beide Zweige wieder zusammenführen, hierzu wechselt man wieder in den Master und führt dort einen merge durch:

git checkout master
git merge neuerzweig

Und schon ist die neue Version im Master enthalten und kann eingesetzt werden.

Das sind jetzt nur die reinen Basics, es gibt noch weitere Befehle.

Verteiltes Arbeiten

Verschiedene git Installationen können übers Netzwerk die einzelnen commits auch austauschen, so können mehrere Entwickler an einem Projekt arbeiten. Auftretende Konflikte, weil z.b. 2 Entwickler an der selben Datei gearbeitet haben, werden angezeigt und müssen ggf. manuell gelöst werden.

Heutzutage nutzt man aber eher eine Server Software für das verteilte Arbeiten, github ist wohl die bekannteste Plattform dafür. Ein großer Vorteil ist dabei die Weboberfläche, man kann sich so simpel die Änderungen in den einzelnen commits ansehen, fertige Versionen werden automatisiert zum Download angeboten. Auch kann man hier schnell ein bestehendes Repository eines anderen Entwicklers forken, also quasi kopieren, dort Änderungen durchführen und dann einen Request stellen das die Änderung in das original Repository übernommen werden, dann können die Entwickler sich das anschauen und übernehmen oder auch ablehnen.

Es gibt sowohl öffentliche als auch private Repository, die privaten können nur freigegebene User auch sehen und dort mitarbeiten oder fertige Versionen runterladen.

Ich selber nutze ein selbstgehostes GitBucket, es reicht für meine Ansprüche und ist simpel zu installieren und abzudaten, ist einfach eine einzelne Java .war Datei die man auf den Server kopiert und startet.

Auch nutzt man heutzutage Editoren die mit git von Haus aus arbeiten können, das vereinfacht das ganze dann enorm.

Link: git Webseite

(546 Wörter | 3679 Zeichen)

Martins Meinung

Hier blogge ich über verschiedene Themen.