Dieser Wiki Artikel soll dir den allgemeinen Umgang mit git als Dateiablage mit Versionsverwaltung vermitteln. Zum Einstieg empfiehlt es sich die die Kapitel nacheinander und mit eigenem Rechner auszuprobieren.
- Rollen in einem Git-Repository
- Begriffserklärung
- Passwort für den HTTPS Zugriff erstellen
- Ermitteln des eigenen Benutzernamens
- Finden der Repository-Adresse
- Installation von Git
- Benutzen von Terminalbefehlen
- Alternative: GUI
- Weiterführende Themen:
Rollen in einem Git-Repository
Die 5 Rollen in einem Respository
- Owner - Besitzer der Repository. Er besitzt alle Rechte und hat keine Einschränkungen in der Verwaltung eines Repositories.
- Maintainer - Pflegt die Repository und kann die Rollenverteilung der Mitglieder verwalten.
- Developer - Kann Programmcode in das Repository hinzufügen (Push).
- Reporter - Kann das Repository durchforsten und vorhandene Issues an die Developer verteilen.
- Guest - Hat die wenigsten rechte. Als Gast kann man lediglich sich das Repository anschauen und klonen
Eine genauere Auflistung aller Rechte ist unter folgendem Link zu finden:
https://docs.gitlab.com/ee/user/permissions.html#project-members-permissions
Begriffserklärung
Wichtige Begriffe
- Repository - Ist ein verwaltetes Verzeichnis zur Speicherung und Beschreibung digitaler Objekte für ein digitales Archiv (Projekt).
- Branch - Entwicklungszweig eines Projektes, wichtig für die gleichzeitige Entwicklung eines Projektes. Wird ein Branch zum Hauptzweig des Repositories zurück geführt so wird dies als Merge bezeichnet.
- Index - Auflistung der aktuell bereitgestellten veränderten Dateien.
Git-Befehle
- Clone - Legt eine lokale kopie eines existierenden Git-Repository an.
- Pull - Wird verwendet, um Inhalte aus einem Remote-Repository herunterzuladen und das lokale Repository zu aktualisieren.
- Add - Fügt die veränderten Dateien zum sogenannten Index hinzu.
- Commit - Erfasst einen Snapshot (Abbild) der aktuell bereitgestellten Änderungen, die Dateien im Index, des Projekts.
- Push - Lädt Inhalte aus dem Snapshot in ein Remote-Repository hoch.
Passwort für den HTTPS Zugriff erstellen
Passwort
a) In Gitlab Personal Profile (oben rechts) -> Edit Profile auswählen und in der linken Leiste auf Password klicken
b) Passwort einstellen
Im Password Tab ein Passwort eingeben (1) (einfachheitshalber das Passwort für die CampusID eingeben) und Save Password klicken (2). Nach erfolgtem Passwort wechsel wird man ausgeloggt und muss sich mit dem neuen Passwort einloggen.
Ermitteln des eigenen Benutzernamens
Benutzername
In Gitlab Personal Profile (oben rechts) -> Edit Profile auswählen und in der linken Leiste auf Account (1) klicken und im Bereich Change Username den eigenen Benutzernamen notieren (2). Der Benutzername wird später benötigt und sollte nicht geändert werden.
Finden der Repository-Adresse
Kopieren der Repository-Adresse
Die Repository-Adresse kann auf der Repository Seite eingesehen und in die Zwischenablage kopiert werden. Dafür klickt man auf Clone (1) und kopiert den https link (2). Diese lautet in diesem Fall https://git-ce.rwth-aachen.de/assistance-systems/helloworld.git
Installation von Git
Installation von Git.
MacOS: Suche und öffne das Terminal in der Programmübersicht oder die Suchleiste (cmd+Leertaste). Anschließend führe folgenden Befehl aus:
git
Es öffnet sich ein Pop-Up-Fenster, welches eine Abfrage nach der Installation der Command Line Developer Tools fragt. Bestätige diese über Installieren.
Ubuntu: Um Git auf Ubuntu zu installieren öffnet man das Terminal (STRG+ALT+T) und führt folgende Befehle aus:
sudo update
sudo apt install git
Windows: Um Git auf Windows zu installieren downloadet man die Installationsdatei von https://gitforwindows.org/
und führt diese aus. Während der Installation sollten alle Voreinstellungen von git beibehalten werden.
Vorbereitung (Einmalig nach Installation)
Für user.name sollte man den zuvor ermittelten Benutzernamen und für user.email die TH-Köln E-Mail Adresse wählen.
Terminaleingabe (MAC/WINDOWS/LINUX):
git config --global http.sslVerify false
git config --global user.email "max.mustermann@smail.th-koeln.de"
git config --global user.name "mmustermann"
Zusätzlich für WINDOWS:
Um das Git-Terminal zu starten klickt man mit der rechten Maustaste auf eine freie Stelle in einem Ordner und wählt Git Bash Here aus.
Benutzen von Terminalbefehlen
Pfadeinstellungen
Pfadeinstellungen
Die folgenden Befehle können nur ausgeführt werden, wenn der angezeigte Pfad im Terminal das Hauptverzeichnis des lokalen Repositories ist. Um im Terminal den Pfad zu wechseln gibt man folgenden Befehl ein, wobei der Zielpfad ist, zu dem man wechseln möchte:
cd <Pfad>
Für den Befehl Clone
ist das ein beliebiger Ordner auf dem PC.
Für die restlichen Befehle ist das anschließend der Ordner mit dem Namen des remote-repositories, der beim Klonen erstellt wurde.
Beispiel: So kann das bspw. ein Ordner auf dem Desktop sein, in dem das geklonte Projekt gespeichert wird:
/Users/<users>/Desktop/Local_repository
Nach dem Klonen wird dann mit
cd helloworld
in den Ordner gewechselt, in dem auch ein untergeordneter branch erstellt werden kann.
Klonen der Repository (Projekt)
Klonen.
Um ein Projekt zu Klonen, erstellt man ein Neuen Ordner für das Projekt, startet das Git-Terminal und wechselt in den Pfad des eben erstellten Ordners.
Dann wird folgender Befehl im Terminal eingegeben:
git clone <Repository-Adresse>
In unserem Fall lautet die Repository-Adresse:
https://git-ce.rwth-aachen.de/assistance-systems/helloworld.git
Der Befehl zum Klonen von diesem Repository lautet demnach:
git clone https://git-ce.rwth-aachen.de/assistance-systems/helloworld.git
Nach erfolgreicher Eingabe von Benutzernamen und Passwort wird das Repository geklont.
Erstellen von einem Branch
Branch erstellen
Um den neuen lokalen Branch (hier: Test) zu erstellen und in diesen Branch zu wechseln, gibt man folgenden Befehl ein:
git checkout -b Test
Mit dem checkout-Befehl ist es möglich jederzeit zwischen den verschiedenen Branches zu wechseln.
Nun wird mit dem push-Befehl der Branch Test zum GitLab-Projekt (auf dem Server) hinzugefügt:
git push origin Test
Pushen von Daten
Pushen
a) Wenn Änderungen im lokalen Repository vorgenommen wurden, dann sollten diese zum Index mit folgendem Befehl hinzugefügt werden:
git add .
b) Nun kann ein Commit einschließlich einer Kurzbeschreibung der Änderung mit folgendem Befehl durchgeführt werden:
git commit -m "Hier steht ein Kommentar"
Dadurch wird nicht das Repository auf GitLab aktualisiert, sondern nur das lokale Repository.
c) Nun können die Änderungen mit folgendem Befehl zum Remote-Repository hinzugefügt werden:
git push <REMOTE> <BRANCHNAME>
ist der Name des remote Servers. Wenn ein Projekt geklont wird, dann ist der von git vergebene Standardname
origin
.
In unserem Beispiel lautet der Befehl somit:
git push origin Test
Pullen von Daten
Pullen
Um Änderungen an einem remote Repository zu downloaden und mit dem lokalen Repository zu synchronisieren wird folgender Befehl ausgeführt:
git pull <PFAD> <BRANCHNAME>
Pfad ist die Repository-Adresse. In unserem Beispiel lautet diese:
https://git-ce.rwth-aachen.de/assistance-systems/helloworld.git
Für unser Beispiel lautet der Befehl somit:
git pull https://git-ce.rwth-aachen.de/assistance-systems/helloworld.git Test
Alternative: GUI
Installation & Benutzung einer GUI.
Installation von git-cola auf deinem Rechner
Für die installation der GUI git-cola befolgt man die Anleitung für das jeweilige Betriebssystem auf folgender Seite:
http://git-cola.github.io/downloads.html
Klonen des Projekts (Repository)
Ziel ist das Klonen des Repositories "HelloWorld" auf das eigene System, um lokal auf die Inhalte zugreifen zu können. Mithilfe von git-cola erfolgt dies auf allen Systeme analog. Einzig das SSL-Zertifikat und die Benutzerdaten müssen zuvor einmalig hinterlegt werden.
a) Starte git-cola und klicke auf Klonen...
b) Job-Spezifikation Anschließend erfolgt die Eingabe der Repository-Adresse und auswahl des Speicherpfades.
c) Es wird nach einer Authentifizierung gefragt. Hierzu den zuvor ermittelten Benutzernamen und das festgelegte Passwort eingeben.
ID: mmustermann PW: 123456
d) Nun wurde das Projekt geklont und es muss ein neuer Branch erstellt werden.
Erstellen von einem Branch
Zum erstellen von einem neuen Branch klickt man auf Branch (1) und anschließend auf Neu (2)
Anschließend gibt man dem neuen Branch einen Namen, z.b. Gruppe01 (1) und klickt auf Branch erstellen (2).
Pushen des Projekts
Die lokal vorhandenen Branches werden unter Branches (1) angezeigt, wo der aktuell ausgewählte Branch mit einem Stern gekennzeichnet ist.
Geänderte bzw. hinzugefügte Daten im geklonten Projekt Ordner werden im Hauptfesnter unter Zustand (2) angezeigt. Durch Doppeltklick auf die geänderten bzw. hinzugefügten Daten merkt diese für den Upload (Push) vor. Dies wird durch einen grünes Dreieck gekennzeichnet.
Um Daten uploaden (pushen) zu können, muss unter Commit (3) einen kommentar eingeben werden (ggf. kann auch eine ausführliche Beschreibung hinzugefügt werden). Anschließend klickt man auf Commit aufnehmen. Dabei verschwinden die Daten aus dem Bereich Zustand (2), was aber kein Grund zur sorge ist.
Zum hochladen der Daten klickt man auf Befehle (1) und anschließend auf Veröffentlichen (2).
Anschließend klickt man im nächsten Fenster auf Veröffentlichen, wenn man noch keinen Branch veröffentlicht hat. Daraufhin erscheint eine Meldung, dass der Branch noch nicht existiert und ob dieser erstellt werden soll, dies bestätigt man mit klick auf Externen Branch erstellen.
Sollte schon ein externer Branch erstellt worden sein, so wählt man diesen zuvor aus (1) und klickt auf Veröffentlichen (2).
Pullen eines Projektes
Sollte das git-Repo (Projekt) unterschiede zur lokalen Kopie aufweisen, muss vor dem arbeiten am Projekt ein sog. "pull" stattfinden.
Dafür wählt man den Reiter Befehle (1) aus und klickt auf Holen und zusammenführen (2).
Anschließend wählt man den Branch aus von dem man den sog. Pull machen möchte (1) und klickt auf Holen und zusammenführen (2).