t3n News Entwicklung

Versionskontrolle für Einsteiger: Die ersten Schritte mit GIT und GitHub

Versionskontrolle für Einsteiger: Die ersten Schritte mit GIT und GitHub

Die Arbeit an einem Web-Projekt im Team kann ziemlich kompliziert sein. Wir verraten, wie die Zusammenarbeit durch vereinfacht wird und warum es sich durchaus lohnt, den Aufwand für eine Versionskontrolle zu betreiben.

Versionskontrolle für Einsteiger: Die ersten Schritte mit GIT und GitHub

(Bild: Shutterstock / 360b)

Mit Hilfe von Versionskontroll-Systemen kannst du dir und deinem Team die Arbeit an Web-Projekten deutlich vereinfachen. Aber auch für Solo-Projekte kann eine gute Versionierung sehr nützlich sein.

Wenn es um das Thema Versionierung geht, bekommt man von Laien oft zu hören, dass es ein unnötiger Aufwand sei, Projekte lokal, auf den jeweiligen Servern und dann auch noch in einer Versionskontrolle aktuell zu halten und dass der direkte Weg über den FTP-Client doch deutlich einfacher und effizienter sei. Das mag auf den ersten Blick tatsächlich so erscheinen. Hat man jedoch erst mal mit einem Versionskontroll-System wie GIT gearbeitet, wird schnell klar, dass die Vorteile in Relation zum zusätzlichen Aufwand überwiegen.

Was ist eine Versionskontrolle?

„Die Arbeit direkt über FTP ist viel unkomplizierter!?“

Versionskontroll-Systeme helfen dabei, einen Überblick über deine Web-Projekt zu behalten. Das System behält für dich sämtliche Dateien im Auge und legt Kopien von aktualisierten Dokumenten an. So hast du die Möglichkeit, jederzeit zu sehen, welche Dateien wann geändert wurden, und kannst die unterschiedlichen Versionen der Dateien schnell vergleichen, zusammenführen und Änderungen rückgängig machen. Doch wie funktionieren Versionskontroll-Systeme?

Eins der wohl bekanntesten Systeme ist GIT mit der dazugehörigen Online-Plattform GitHub, das seinen Usern unter anderem ein auf GIT basierendes Versionskontroll-System anbietet. Auf werden hierfür Projekte in so genannten Repositorys organisiert. Diese „Archive“ beinhalten die jeweiligen Bestandteile wie PHP-, JavaScript-, HTML- und CSS-Dateien.

Am Projekt beteiligte Benutzer können eine Kopie des Repositorys auf ihrem Computer anlegen und daran arbeiten. Durchgeführte Änderungen schicken sie an GitHub zurück, das dann den Rest der Arbeit wie das Anlegen von Sicherungskopien der alten Dateien übernimmt.

Das Versionskontroll-System GIT nutzen

Um von einer zentralen Versionskontrolle profitieren zu können, musst du zunächst eine lokale Versionskontrolle auf deinem Computer installieren. GIT ist für alle Plattformen verfügbar und ist mit wenigen Klicks einsatzbereit. Auf der offiziellen Webseite zum Versionskontrollsystem GIT kannst du das jeweils passende Installationspaket runterladen.

In diesem Artikel werden wir mit GitHub arbeiten. Damit du loslegen kannst und das System deine Änderungen auch entsprechend erfassen kann, musst du neben dem Repository auf GitHub auch ein lokales Repository anlegen. Das geht beispielsweise mit dem GitHub-Client (GitHub für Mac, GitHub für Windows). Er kann ein bestehendes Repository von einem zentralen in dein lokales Versionskontroll-System kopieren (Cloning). Du hast auch die Möglichkeit, ein Repository zunächst lokal anzulegen und dann auf GitHub zu veröffentlichen. Wir gehen aber den einfachen Weg. Ist die Kopie des Repositorys erst mal angelegt, kannst du wie gewohnt mit dem Editor deiner Wahl an dem Projekt weiter arbeiten.

GitHub für Mac
Versionskontrolle: Mit dem GitHub-Client kannst du ganz einfach bei GitHub angelegte Projekte auf deinen Rechner kopieren. (Screenshot: t3n)

Commit

GitHub für Mac
Mit einem Commit speicherst du eine neue Version deiner Dateien im lokalen Repository. (Screenshot: t3n)

Sobald du mit deiner Arbeit fertig bist, musst du deine Änderungen für das Versionskontroll-System zusammenfassen. Das geht mit einem so genannten „Commit“. Mit dem Commit-Befehl teilst du deinem lokalen Repository mit, dass du bestimmte Dateien verändert hast und dieser Schritt jetzt in die Versionierung übernommen werden soll. Hierfür kannst du die Dateien, die du verändert hast, auswählen und einen Kommentar hinterlassen, um später besser nachvollziehen zu können, was du gemacht hast.

Push

GitHub Remote Publish
Mit einem Push (GitHub: Publish) veröffentlichst du Änderungen deines lokalen Repositorys im zentralen Repository. (Screenshot: t3n)

Wenn du deine Änderungen an die zentrale Versionsverwaltung – also GitHub – übermitteln willst, musst du die Änderungen pushen.Beim Pushen werden sämtliche Änderungen aus deinem lokalen Repository an das Remote-Repository übertragen. Dazu gehören auch Commits, die du zwischendurch durchgeführt hast. Beim GitHub-Client nennt sich dieser Schritt „Publish“. So können auch offline durchgeführte Änderungen erfasst und später im Remote-Repository nachvollzogen werden.

Pull

Der Pull-Befehl ist das Gegenteil vom Push: Mit einem Pull (beim GitHub-Client „Sync“) kannst du dein lokales Repository mit Daten aus dem entfernten Repository abgleichen und Änderungen übernehmen. Das kann besonders nützlich werden, wenn du an mehreren Geräten arbeitest, da so alle deine Entwicklungsgeräte die aktuellste Fassung des Projektes zur Verfügung haben. Natürlich könnte man auch ohne GIT die anderen Entwicklungsgeräte synchron halten – beispielsweise über FTP. Das dauert aber mit zunehmender Projektgröße deutlich länger als das Abgleichen deiner Dateien mit einem Repository.

Branching

GitHub Branch
Mit einem Branch erstellst du eine Kopie des Repositorys oder eines anderen Branches und kannst parallel entwickeln. (Screenshot: t3n)

Ein GIT-Projekt kann mit so genannten Branches aufgeteilt werden. Sobald du oder ein anderer Entwickler einen Branch anlegt, wird eine eine 1:1-Kopie des aktuellen Zustands (der so genannte Stamm) angelegt, an der dann parallel weitergearbeitet werden kann.

Das ist beispielsweise sinnvoll, wenn du am Abrechnungsmodul deines Projekts arbeitest, während ein anderer Entwickler sich um das Projekt-Management-Modul kümmert und ein dritter die Core-Funktionen noch mal auf Fehler überprüft. So kann von jedem der drei Module eine aktuelle Version gepflegt werden, die zu einem späteren Zeitpunkt in den Stamm-Code einfließen kann.

Merging

GitHub Merging
Das Merging mit dem GitHub-Client ist mit wenigen Klicks erledigt. (Screenshot: t3n)

Als Merging bezeichnet man die Zusammenfassung von mehreren Branches. Hierfür werden die Änderungen an einem Branch in einen anderen Branch (oder Stamm) übernommen. Das funktioniert besonders gut, wenn der Branch Änderungen an Dateien vornimmt, die von keinem anderen Benutzer in dem Branch, mit dem die Zusammenführung durchgeführt werden soll, bearbeitet wurden. Im GitHub-Client werden Branches ganz einfach per Drag & Drop in der „Branches-Ansicht“ zusammengeführt.

Vor- und Nachteile von Systemen zur Versionskontrolle

Für die Zusammenarbeit mit einem Versionskontroll-System wie GIT ist eine gewisse Disziplin erforderlich. Zwar hat GIT eine Möglichkeit, Änderungen verschiedener Programmierer an der selben Datei zusammenzuführen. Wirklich unproblematisch ist das aber nur in seltenen Fällen. Es ist somit sinnvoll, jemanden zu bestimmen, der die Arbeit an den einzelnen Komponenten koordiniert und somit Kollisionen frühzeitig verhindern kann. Ein modularer Aufbau des Projekts begünstigt die Zusammenarbeit mit einem Versionskontroll-System natürlich.

Die hier beschriebenen Möglichkeiten kratzen zudem nur an der Oberfläche dessen, was mit einem Versionskontroll-System möglich ist. Für den Einstieg und ein erstes gemeinsames Projekt sollte das aber reichen. Doch Versionskontroll-Systeme sind nicht nur für Teams interessant. Auch wenn du alleine arbeitest, kann der Einsatz eines solchen Systems dir die Arbeit vereinfachen – sei es durch eine Sicherung oder die konsequente Trennung und Versionierung von Features in unterschiedlichen Branches.

Nicht nur für Webworker

Versionskontroll-Systeme sind aber nicht nur für Programmierer interessant. Zwar ist ein System wie GIT nicht für die Verwaltung und das Zusammenlegen von Binärdaten ausgelegt, das bedeutet aber nicht, dass es nicht dazu in der Lage ist, Sicherungskopien älterer Versionen von beispielsweise Photoshop- oder InDesign-Dateien anzulegen. So könnte ein solches System auch für die Versionierung von Layouts verwendet werden, ohne hierfür unzählige inkrementelle Kopien anfertigen zu müssen. Irgendwann passiert es schließlich jedem mal, dass man die falsche Datei überschreibt. Mit einem Versionskontroll-System wie GIT ist das dann kein Problem mehr.

Kostenlose öffentliche und private Repositorys erstellen

GiHub bietet seinen Nutzern eine Möglichkeit, kostenlose Repositorys anzulegen – die sind jedoch öffentlich und für alle einsehbar. Wenn du von einem zentralen Versionskotroll-System profitieren willst, aber die Kosten von GitHub scheust, könnte sich ein Blick auf BitBucket lohnen. Der Dienst von Atlassian bietet ebenfalls zentrale GIT-Repositorys an, die aber auch schon im kostenlosen Tarif mit bis zu fünf Team-Mitgliedern privat geteilt werden können.

Vorheriger Artikel Zurück zur Startseite Nächster Artikel
10 Antworten
  1. von Werner am 21.03.2015 (10:16 Uhr)

    => Kosten von GitHub..
    Einfach einen virt. Server mieten, absichern, git installieren und Repositories selber hosten. ca. 30 min Arbeit..

    Antworten Teilen
  2. von Carsten am 21.03.2015 (11:41 Uhr)

    Als Client für Mac (Windows in Arbeit) empfehle ich Tower und dessen Lernplattform unter git-tower.com/learn.

    Antworten Teilen
  3. von Joern am 21.03.2015 (12:08 Uhr)

    bitbucket ist wirklich gut: Private Repositories für lau. Funktioniert bisher ohne Probleme.

    Antworten Teilen
  4. von Marc am 21.03.2015 (12:25 Uhr)

    Anstatt BitBucket sollte man sich auch mal Stash anschauen. Das ist aus dem gleiche Hause und wir standen vor kurzem ebenfalls vor der Frage und haben uns für Stash entschieden und es keine Sekunde bereut (vorallem in Verbindung mit den anderen Atlassian Produkten zum Software Development spielt Stash seine Stärken in der perfekten Vernetzung aus!).

    Antworten Teilen
  5. von John am 22.03.2015 (01:56 Uhr)

    #GitFtpUpload
    Sollte der Hoster kein SSH anbieten ist dieses Programm in Verbindung mit .Git
    sehr praktisch: https://github.com/git-ftp/git-ftp

    Antworten Teilen
  6. von Susanna Künzl am 22.03.2015 (06:08 Uhr)

    Wer mit PhpStorm arbeitet, kann sein lokales Repository per Plugin mit BitBucket abgleichen: https://plugins.jetbrains.com/plugin/6207?pr=phpStorm, die Zusammenarbeit mit Github ist mW sowieso an Bord: https://www.jetbrains.com/phpstorm/help/registering-github-account-in-phpstorm.html.

    Antworten Teilen
  7. von Peter am 23.03.2015 (09:44 Uhr)

    Wenn ihr es auf eurem eigenen Server hosten wollt (Thema US & Datenschutz!) dann empfehle ich Rhodecode (https://rhodecode.com).

    Deutsche Firma, spezialisiert auf sichere Versionskontrolle, kostenlos bis 10 Benutzer und funktioniert nicht nur mit Git, sondern auch mit Mercurial und Subversion.

    Antworten Teilen
  8. von Andi am 25.03.2015 (15:00 Uhr)

    Ich verwende für mich und auch in den Unternehmen GitLab CE auf virtuellen Maschinen. Sowohl lokale VM als auch "Internet-VM". Funktioniert super, das Updaten läuft auch prima und es kostet sogesehen nur das Hosting bzw. die lokale VM. Man sollte allerdings mindestens 2 GB und 2 vCores verwenden. Ansonsten wird's auch schnell mal wirklich langsam. Aber das sollte heute ja alles kein Problem mehr sein.

    Antworten Teilen
  9. von Gordon am 27.03.2015 (15:09 Uhr)

    Wer sich das anschauen möchte: wir hatten "Versionskontrolle mit Git" als Thema im Februar beim Webmontag und haben jetzt die Vorträge als Videos fertig. Ertser Teil ist eine Einführung und der zweite Teil ein live-tutorial (2 x 30 Minuten).

    - https://www.youtube.com/watch?v=s3-nKliIzZA
    - https://www.youtube.com/watch?v=1BHFCk2aZKo

    Antworten Teilen
  10. von m_r_miagi am 17.06.2016 (07:19 Uhr)

    Hier ebenfalls noch ein "simple guide" http://rogerdudler.github.io/git-guide/

    Antworten Teilen
Deine Meinung

Bitte melde dich an!

Du musst angemeldet sein, um einen Kommentar schreiben zu können.

Jetzt anmelden

Mehr zum Thema Git
Git 2.9: Das sind die Neuerungen bei der Versionsverwaltungssoftware
Git 2.9: Das sind die Neuerungen bei der Versionsverwaltungssoftware

Die Versionsverwaltungssoftware Git ist in Version 2.9 erschienen. Wir werfen einen Blick auf die wichtigsten Neuerungen. » weiterlesen

Was ist eigentlich dieses GitHub?
Was ist eigentlich dieses GitHub?

Als internet-affiner Mensch ist es kaum mehr möglich, Software runterzuladen, ohne dabei früher oder später einmal über „GitHub“ zu stolpern. Doch was verbirgt sich eigentlich dahinter? » weiterlesen

Versionsverwaltung für große Binärdateien: GitHub stellt Git Large File Storage 1.0 vor
Versionsverwaltung für große Binärdateien: GitHub stellt Git Large File Storage 1.0 vor

Git Large File Storage ist in Version 1.0 erschienen. Damit will GitHub große Binärdateien in euren Workflow integrieren. » weiterlesen

Alle Hefte Jetzt abonnieren – für nur 35 €

Kennst Du schon unser t3n Magazin?