GIT, GITHUB und ATOM

Anleitung für die Coderverwaltung mit git, Github und Atom

Kaum ein Softwareprojekt kommt heute noch ohne eine gute Versionsverwaltung aus. Das mit Abstand beliebteste Werkzeuge hierfür ist inzwischen git. Und genau darum soll es heute gehen. Zunächst musst du git jedoch auf deinem Rechner installieren, damit Atom es finden kann.

Nach der Installation benötigst du noch einen SSH-Key. Damit kannst du dich bei Github authorisieren, ohne Benutzernamen und Passwort einzugeben (was Atom auch nicht unterstützt). Prüfe dazu, ob in deinem Benutzerverzeichnis bereits ein Ordner namens .ssh mit den beiden Dateien id_rsa und id_rsa.pub existiert.

Existieren die Dateien bereits, prima! Du musst nichts weiter machen. Falls nein, öffne die Kommandozeile und führe folgenden Befehl aus:

ssh-keygen -t rsa -C "your_email@example.com"

Die E-Mailadresse musst du natürlich durch deine eigene ersetzen. Die Fragen des Programms kannst du einfach mit ENTER bestätigen. Anschließend solltest du nun das oben genannte Verzeichnis mit den beiden Dateien haben:

Streng genommen ist dieser Schritt gar nicht notwendig. Wenn nur eine Person an einem Projekt arbeitet, reicht ein lokales git-Repository völlig aus. Indem du deinen Code auf github hostest, machst du es aber anderen einfacher, dazu beizutragen.

  1. Besuche github.com und eröffne ein neues Konto.
  2. Melde dich anschließend mit dem neuen Konto an und klicke oben rechts auf deinen Avatar und dort dann auf Settings.
  3. Wähle links den Eintrag SSH and GPG keys aus.
  4. Klicke auf New SSH key.
  5. Gib dem Key einen beliebigen Namen und kopiere den Inhalt der Datei id_rsa.pub in das große Eingabefeld.
  6. Klicke unten auf Add SSH key.

Zunächst brauchen wir ein neues Atom-Projekt mit ein paar Quellcodedateien darin. Wie du weißt, ist ein Projekt in Atom einfach nur ein Ordner auf deiner Festplatte. Lege diesen nun an und erzeuge eine Datei, zum Beispiel mit dem Namen index.html. Danach geht es wie folgt wieter:

  1. Öffne den neuen Ordner in Atom mit FileAdd Project Folder
  2. Öffne den Git-Tab mit ViewToggle Git Tab
  3. Initialisiere das Repository, indem du im Git-Tab auf Initialize Repository klickst.

Innerhalb des Git-Tab tauchen zunächst alle Dateien des Projekts in einer Liste mit dem Namen Unstaged Changes auf. Damit ist gemeint, dass es Änderungen an diesen Dateien gibt, die bisher noch nicht im Repository vorhanden sind. Gehe daher wie folgt vor:

  1. Klicke oben rechts auf Stage All, um alle Änderungen zu übernehmen. Alternativ kannst du auch nur einzelne Dateien oder sogar nur einen Ausschnitt aus einer Datei übernehmen.
  2. Die Änderungen sind nun vorgemerkt, weshalb die Dateien nun in der Liste Staged Changes stehen. Fahre fort mit Punkt 3.
  3. Gib unten bei Commit Message eine ausführliche Beschreibung ein. Mit dem Symbol unten rechts im Textfeld kannst du es in einem neuen Tab, um mehr Platz zu bekommen.
  4. Klicke auf Commit, um die vorgemerkten Änderungen einzuchecken.

Auf diese Weise kannst du nun nach Belieben Änderungen an deinem Projekt vornehmen und diese in das git-Repository einchecken. Beachte dabei aber, dass ein Commit immer eine abgeschlossene Änderung umfassen sollte. Checke also nicht gleich jede kleinste Änderung ein. Mach die Commits aber auch nicht zugroß.

Die erste Zeile der Commit-Message ist ihre Überschrift. Sie sollte kurz und präzise den wesentlichen Inhalt der Änderung wiedergeben. Alle folgenden Zeilen sind der Inhalt der Commit-Message. Nimm dir ruhig die Zeit, deine Änderungen hier ausführlich zu beschreiben.

Bisher arbeiten wir nur lokal, so dass du zwar ein git-Repository auf deinem Rechner hast, außer dir aber niemand die Versionshistorie deines Projekts nachvollziehen kann. Zeit dies zu ändern, und sich in Github anzumelden.

  1. Besuche die Seite github.com und melde dich mit deinem Account an.
  2. Abschließend klicke auf New repository, um ein neues Repository anzulegen.
  3. Gib einen Namen und eine Beschreibung für dein neues Repository ein. Alle anderen Einstellungen musst du so lassen, wie sie sind. Füge an dieser Stelle noch keine wie README.md oder LICENSE hinzu, auch wenn Github es an dieser Stelle bereits anbietet!
  4. Klicke nun auf Create repository.
  5. Wenn alls gut ging, siehst du nun eine Anleitung, mit welchen Befehlen du Quellcode hochladen kannst. Siehst du die Seite nicht, lösche das Repository und lege es erneut an.
  6. Klicke unter der Überschrift Quick setup auf SSH und kopiere die angezeigte git-Adresse in die Zwischenablage.

Weiter geht es im Atom Editor:

  1. Wähle im Menü den Punkt PackagesGit PlusRun aus.
  2. Gib folgenden Befehl in das Befehlsfenster ein:

    remote add origin git@github.com/…

    Den letzten Teil musst du dabei durch die eben kopierte URL ersetzen.

  3. Öffne das Git-Befehlsfenster erneut und gib folgenden Befehl ein:

    push -u origin master

  4. Wenn du die Seite in Github neulädst, solltest dort nun dein Quellcode stehen.

Dein Repository ist nun mit Github verknüpft. Technisch gesehen handelt es sich dabei um ein lokales Repository auf deinem Rechner sowie ein entferntes Repository auf Github. Beide Repositories haben ihren eigenen Versionsverlauf, den du mit der nachfolgenden Anleitung synchronisieren kannst.

An dieser Stelle wollen wir etwas an dem Projekt weiterarbeiten und zwei wichtige Dateien anlegen: README.md und LICENSE. Diese Dateien haben folgende Bedeutung:

Führe an dieser Stell folgende Schritte aus:

  1. Lege die beiden genannten Dateien an und fülle sie mit sinnvollem Inhalt.
  2. Checke die Änderung in dein lokales Repository ein.
  3. Klicke ganz unten rechts auf das Symbol mit den zwei Pfeilen (Pfeil hoch und runter). Daneben müsste eine „1” stehen, da es nun einen nicht hochgeladenen Commit gibt.
  4. Klicke auf Push (1), um deine Versionshistorie auf Github hochzuladen.
  5. Prüfe in Github, ob deine Änderungen angekommen sind.

Wenn ihr im Team arbeitet, trägt jeder von euch zur gemeinsamen Codebasis bei. Das heißt, jeder von euch entwickelt auf seinem Rechner und pflegt dort eine eigene Versionshistorie, die regelmäßig mit Github abgegelichen werden muss. Dabei hat sich ein einfaches Vorgehen fest etabliert.

Jedes mal, wenn du programmieren willst, führe folgende Schritte aus:

  1. Pull: Klicke mit der rechten Maustaste im Projektbereich auf den Namen deines Projekts und wähle folgenden Menüeintrag aus: GitGit pull. Dadurch werden die neusten Änderungen von Github auf deinen Rechner übertragen.
  2. Commit: Nun kannst du nach herzenslaune programmieren und Änderungen in dein Repository einchecken.
  3. Push: Schiebe deine Commits in regelmäßigen Abständen auf Github, um sie mit den anderen zu teilen. Hierfür kannst du das Symbol unten rechts mit den zwei Pfeilen oder ebfenfalls das Kontextmenü im Projektbereich nutzen. Der Menübefehl lautet dann GitGit push.

Am sichersten ist es, wenn du nach jedem Commit auch ein Push und ein Pull ausführst. So werden diene Änderungen schnell mit den anderen geteilt und du kannst bei möglichen Konfliketen schnell reagieren, bevor du zu viele Code deshalb umschreiben musst. Wie du Änderungskonflikte auflösen kannst, erfährst du im folgenden Kapitel.

Manchmal kann es vorkommen, dass zwei Personen dieselbe Stelle in derselben Datei bearbeiten. Das ist ziemlich ärgerlich, hat man sich in diesem Fall doch nicht richtig abgesprochen und einer von beiden muss jetzt beide Versionen zusammenführen, bevor alle wieder wie gewohnt arbeiten können. Dass es zu einem Konflikt gekommen ist, merkst du daran, dass du deine Änderungen nicht auf Github schieben kannst. Beim Versuch einen Push auszuführen, erhälst du die Meldung Push rejected.

Die Situation kannst du nun wie folgt auflösen:

  1. Führe ein Git pull aus, um die neusten Änderungen von Github herunterzuladen.
  2. Im Git-Tab taucht nun der Bereich Merge Conflict auf. Dort siehst du alle Dateien, bei denen es nun Konflikte gibt.
  3. Öffne die Dateien durch Rechtsklick auf ihren Namen und Auswahl von Open file.
  4. Schaue dir den gesamten Code an und achte auf die farblich hervorgehobenen Änderungskonflikte. Oben in lila siehst du immer deine lokale Version und unten in blau die Version von Github.
  5. Klicke auf einen der beiden Use me-Buttons, um dich für eine der beiden Versionen zu entscheiden.
  6. Wenn du alle Konflikte aufgelöst hast, führe einen Commit aus und schiebe die Änderung auf Github. Atom belegt dafür soger schon die Commitnachricht vor.

Wenn du alle Schritte bis hierhin durchgearbeitet hast, kennst du nun die wichtisten Abläufe, um mit git im Team zu arbeiten. git kann aber noch viel mehr. Wenn du vor hast, in größeren Projekten damit zu arbeiten, lies dir die Onlineversion des wirklich hervorragenden Pro Git Buch von Scott Chacon und Ben Straub durch. Die Lektüre lohnt sich!

Und nun, viel Spaß mit git, Github und Atom!