Workshop: Git und Social Coding (Blatt 02)
Nach der Bearbeitung dieses Arbeitsblattes haben Sie gelernt
- Remote Repositories zu klonen
- lokale Änderungen mit dem Remote Repository abzugleichen
- entfernte Änderungen mit dem lokalen Repository zu synchronisieren
- Pull Requests auf GitHub zu erstellen, kommentieren und zu mergen.
Diese Aufgaben sollen Sie darauf vorbereiten in Ihrer Projektgruppe (mit ca. 6 TeilnehmerInnen) gemeinsam zu programmieren.
Bearbeiten Sie auch in diesem Workshop die Aufgaben in Ihrer Projektteam. Das heißt, sie arbeiten erneut in Kleingruppen von ca. 2 Personen, nutzen aber mit Ihrem Team ein gemeinsames GitHub-Repository.
Es ist nicht weiter schlimm, wenn Sie mit den Übungen in der Zeit nicht fertig werden.
Viel Erfolg!
Accounts anlegen (ca. 5min)
Voraussetzung für diese Übung ist, dass alle Teammitglieder ein
GitHub (github.com
)
Nutzerkonto haben. Nehmen Sie sich kurz Zeit, um sich Nutzernamen
auszudenken und tragen Sie nach Anmeldung alle Nutzernamen Ihres Teams
zusammen.
Umgebung einrichten (ca. 5 min)
$ git clone [URL]
Richtet eine lokale Kopie eines Remote-Repositories ein.
$ git remote -v
Listet die Remote-Repositories auf, die mit dem lokalen Repository
verknüpft sind.
Sie wollen gemeinsam mit Ihrem Team an einem Softwareprojekt arbeiten. Bevor alle mit dem Programmieren anfangen können, muss zunächst ein gemeinsames Remote-Repository auf GitHub angelegt werden:
- Bestimmen Sie eine Person aus dem Team, welche ein Übungsrepository
auf
https://github.com/
anlegt. Dieses Repository kann alsprivate
markiert werden. D.h. Inhalte und Änderungen sind nur für Teammitglieder sichtbar, denen Sie manuell Zugriff gewährt haben. - Geben Sie über “Settings > Collaborators & teams > Manage Access > Add people” Ihrem Team Lese- und Schreibrechte auf dem Repository.
Fahren Sie nun in Kleingruppen fort.
- Klonen Sie das Repository, um an einer Kopie auf dem eigenen Rechner arbeiten zu können.
- Überprüfen Sie mit
git remote -v
, welche Remote-Repositories mit Ihrem lokalen Repository verknüpft sind.
Gemeinsam an Code arbeiten (ca. 15 min)
Bisher ist das Repository leer – Zeit etwas Code zu schreiben. Arbeiten Sie nun “isoliert” in den Kleingruppen, d.h. jede Kleingruppe bearbeitet die Aufgaben alleine, ohne mit den anderen über den Code oder das gemeinsame Repository zu sprechen. Sie können sich weiterhin austauschen, indem Sie die Kommunikationsmittel verwenden, die Ihnen GitHub zur Verfügung stellt.
$ git push -u [remote-name] [branch-name]
Aktualisiert den Branch branch-name
im Remote-Repository
remote-name
. Die Option -u
richtet außerdem
remote-name/branch-name
als upstream Branch für
branch-name
ein.
$ git fetch [remote-name]
Aktualisiert die lokale Kopie von remote-name
.
$ git branch -vv
Die Option -vv
zeigt zusätzliche Tracking-Information zu
den Branches an.
- Erstellen Sie eine neue Datei in Ihrem Arbeitsverzeichnis (im Branch
main
) und committen Sie diese. - Teilen Sie Ihre Änderung mit den Anderen, indem Sie diese “pushen”. (Dies wird zunächst fehlschlagen, wenn Ihre Kollegen schneller waren.)
- Ziehen Sie sich die neusten Änderungen mit
git fetch
. Sollten Sie noch lokale Commits haben (git branch -vv
zeigt “ahead” an), dann mergen Sie die Änderungen Ihrer KollegInnen in Ihrenmain
branch. - Wiederholen Sie Teilaufgabe 2 und 3, bis jede Teilgruppe mindestens eine Änderung beigetragen hat.
Tipp: Ein einfacher Weg die ständige Passworteingabe zu vermeiden ist folgende Konfiguration:
git config --global credential.helper cache
Bitte warten Sie auf die anderen Mitglieder Ihrer Gruppe, bevor Sie mit der nächsten Aufgabe fortfahren.
Code Reviews mit Pull Requests (ca. 20 min)
Nach einiger Zeit ist Ihnen im Team aufgefallen, dass manchmal Code committed wird, der gar nicht funktioniert. Dies stört alle Anderen in ihrer Arbeit. Deshalb einigen Sie sich darauf, den GitHub Flow Workflow zu verwenden und Code nur noch in main zu mergen, wenn dieser mindestens von einer anderen Person kontrolliert wurde.
- Erstellen Sie einen neuen lokalen Branch
- Arbeiten Sie auf diesem Branch (d.h. machen Sie mindestens eine Änderung, die sie committen)
- Veröffentlichen Sie den Branch im Remote Repository (Tipp: Nutzen
Sie
git push
) - Verwenden Sie die GitHub Web-Oberfläche, um einen Pull Request für Ihren Branch zu erstellen.
- Laden Sie eine Teamkollegin, durch Erwähnung ihres Benutzernamens ein, Feedback zu dem Pull Request zu geben.
- Wenn ihre Kollegin einverstanden ist: Mergen sie den Branch und löschen Sie ihn danach.
- Wenn ihre Kollegin nicht einverstanden ist: Machen sie eine Änderung und wiederholen Sie ab Teilaufgabe 5.
- Klicken Sie auf
X commits
auf der Startseite ihres Projektes, um zuhttps://github.com/USERNAME/PROJECTNAME/commits/main
zu wechseln. Versuchen Sie die Änderungen Ihres Teams anhand der Informationen nachzuvollziehen.