Fingerübungen
Übung 1 - Allein
Hab keine Sorge, dass Du etwas falsch machst. Diese Übung findet nur auf Deinem lokalen Rechner statt. Am Ende kannst Du den Ordner mit dem Repository einfach wieder löschen und alles ist gut.
- Erstelle mit
git initein lokales Repository auf Deinem Rechner. - Füge nun wiederholt Dateien hinzu oder editiere ihren Inhalt und übe auf diesem Weg den
git add&git commitWorkflow. - Lass Dir mit
git diffdie Änderungen anzeigen, bevor Du sie in die Staging Area hinzufügst. - Lass Dir Deine History mit
git logodergit log --onelineanzeigen. Kopiere die ID des Commits, zu dem Du zurückspringen möchtest. Die IDs sind die wilden Buchstaben-/Zahlenkombinationen, die jeweils am Anfang der Zeile stehen. Man nennt Sie auch SHA (“Secure Hash Algorithm”). - Springe nun mit
git checkout <SHA>zu einer früheren Version zurück. Für<SHA>musst Du eben die Commit ID einfügen. Schaue Dir nun Deine Dateien im Editor an. Was hat sich geändert? - Springe nun mit
git checkout masterwieder zur aktuellen Version.
Übung 2 - Allein
In Übung 1 hast Du ein lokales Repository erstellt und damit gearbeitet. Wenn Du aber mit einem remote repository - also nicht nur lokal - arbeiten möchtest, ist es einfacher, diesen “remote” zunächst online zu erstellen, es dann auf Deinen Rechner zu klonen und dort dann lokal weiterzuarbeiten. Auf diese Weise hast Du durch das Klonen gleich den korrekten Link zum remote gesetzt.
Diesen Vorgang sollst Du nun einmal selbst üben.
- Gehe auf https://gitup.uni-potsdam.de und erstelle mit dem “New Project”-Button ein neues Repository.
- Gib einen informativen Namen für Dein Projekt an.
- Optional kannst Du noch eine Beschreibung hinzufügen. Diese taucht dann auch im README auf (s.u.).
- Für die Sichtbarkeit kannst Du “private” (nur für Dich sichtbar) oder “Internal” (auch für andere Git.UP-Nutzer der Uni sichtbar) wählen.
- Wähle außerdem immer die Option “Initialize repository with a README”. So kannst Du das Repository direkt klonen, weil es bereits einen Inhalt gibt.
- So, fertig. Nun kannst Du die https-Adresse Deines Repository nutzen, um Dein Repository mit
git clone ...auf Deinen Rechner zu bringen. - Lass Dir mittels
git remote -vanzeigen, dass sich Dein lokales Repository auch seiner “Herkunft” bewusst ist. - Willst Du alles wieder löschen? Ein lokales Repository kannst Du einfach als Verzeichnis löschen. Dein Repository in GitLab löscht Du unter “Settings –> Advanced –> Remove project”.
Übung 3 - Zu zweit
Probiert mal aus, gemeinsam an einem Projekt zu arbeiten. Die folgende Anleitung sieht zwar umfangreich aus, das Prinzip ist aber eigentlich einfach: person1 legt ein Repository in GitLab an, person2 erstellt davon einen Fork und fügt eine Änderung hinzu. Sie möchte nun, dass diese Änderung zurück in das ursprüngliche Repository von person1 fließt…und die Geschichte nimmt ihren Lauf.
person1legt auf https://gitup.uni-potsdam.de ein neues Repository an - nennen wir esgit-uebung2. Dieses liegt dann also unter.../person1/git-uebung2.person1klont das Repository, fügt eine neue Dateimeins.mdmit einer neuen Zeile hinzu. Dannadd,commit,push.person2kommt ins Spiel: Sie erstellt einen Fork vonperson1/git-uebung2und erhält somit auf Git.UP.../person2/git-uebung2. Nun klontperson2den Fork auf ihren Rechner. Dort fügt sie eine weitere Zeile zur Dateimeins.mdhinzu, dannadd,commit,push.- Nun kommt’s:
person2möchteperson1bitten, die neueste Änderung (eine neue Zeile!) in ihr Repositoryperson1/git-uebung2zu übernehmen. Denn die neue Zeile stellt eine echte Verbesserung dar! Dafür gehtperson2auf die GitLab-Seitehttps://gitup.uni-potsdam.de/person2/git-uebung2und stellt einen Merge-Request: Im linken SidebarMerge Requestsauswählen –>New Merge Request. Der Source Branch istperson2/git-uebung2(master) und der Target Branch istperson1/git-uebung2(master). Nun aufCompare branches and continue.person2hat nun die Möglichkeit, den Merge Request weiter zu beschreiben und anzupreisen. Anschließend aufSubmit Merge Request. person1kann auf der Seitehttps://gitup.uni-potsdam.de/person1/git-uebung2unter Merge Requests den Merge Request inspizieren, kommmentieren oder ggf. auch Änderungen anfordern. Fallsperson1zufrieden ist, kann sie denMerge-Button drücken.- Um das Ganze pefekt zu machen, sollte
person2in ihrem lokalen Fork-Repository noch das Ursprungsrepo (upstream) als remote hinzufügen, damit sie auch Änderungen vonperson1in ihren Code einpflegen kann:git remote add upstream https://gitup.uni-potsdam.de/person1/git-uebung2. Bitte den Erfolg mitgit remote -vverifizieren. Nun kannperson2mittelsgit pull upstream masterihr lokales Repo mit dem remoteupstreamsynchronisieren. - Bitte probiert das gleich mal aus, indem
person1ihr lokales Repo mittelsgit pull origin mastermit ihrem remote synchronisiert und nun gleich noch eine dritte Zeile einfügt oder etwas in einer anderen Zeile ändert. Dann wiederadd,commitundpush. Nun sollperson2diese Änderung mittelsgit pull upstream masterin ihr lokales Repo holen. - Wow…