... | @@ -3,8 +3,9 @@ Dieser Wiki Artikel soll dir den allgemeinen Umgang mit git als Dateiablage mit |
... | @@ -3,8 +3,9 @@ Dieser Wiki Artikel soll dir den allgemeinen Umgang mit git als Dateiablage mit |
|
[[_TOC_]]
|
|
[[_TOC_]]
|
|
|
|
|
|
# Rollen in einem Git-Repository
|
|
# Rollen in einem Git-Repository
|
|
|
|
<details>
|
|
|
|
<summary>Die 5 Rollen in einem Respository</summary>
|
|
|
|
|
|
Es gibt 5 Rollen in einem Repository:
|
|
|
|
* **Owner** - Besitzer der Repository. Er besitzt alle Rechte und hat keine Einschränkungen in der Verwaltung eines Repositories.
|
|
* **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.
|
|
* **Maintainer** - Pflegt die Repository und kann die Rollenverteilung der Mitglieder verwalten.
|
|
* **Developer** - Kann Programmcode in das Repository hinzufügen (Push).
|
|
* **Developer** - Kann Programmcode in das Repository hinzufügen (Push).
|
... | @@ -14,8 +15,13 @@ Es gibt 5 Rollen in einem Repository: |
... | @@ -14,8 +15,13 @@ Es gibt 5 Rollen in einem Repository: |
|
Eine genauere Auflistung aller Rechte ist unter folgendem Link zu finden:
|
|
Eine genauere Auflistung aller Rechte ist unter folgendem Link zu finden:
|
|
`https://docs.gitlab.com/ee/user/permissions.html#project-members-permissions`
|
|
`https://docs.gitlab.com/ee/user/permissions.html#project-members-permissions`
|
|
|
|
|
|
|
|
</details>
|
|
|
|
|
|
|
|
|
|
# Begriffserklärung
|
|
# Begriffserklärung
|
|
|
|
<details>
|
|
|
|
<summary>Wichtige Begriffe</summary>
|
|
|
|
|
|
* **Repository** - Ist ein verwaltetes Verzeichnis zur Speicherung und Beschreibung digitaler Objekte für ein digitales Archiv (Projekt).
|
|
* **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.
|
|
* **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.
|
|
* **Index** - Auflistung der aktuell bereitgestellten veränderten Dateien.
|
... | @@ -29,43 +35,55 @@ Eine genauere Auflistung aller Rechte ist unter folgendem Link zu finden: |
... | @@ -29,43 +35,55 @@ Eine genauere Auflistung aller Rechte ist unter folgendem Link zu finden: |
|
|
|
|
|

|
|

|
|
|
|
|
|
|
|
</details>
|
|
|
|
|
|
|
|
|
|
# Passwort für den HTTPS Zugriff erstellen
|
|
# Passwort für den HTTPS Zugriff erstellen
|
|
|
|
<details>
|
|
|
|
<summary>Passwort</summary>
|
|
|
|
|
|
#### a) In Gitlab _Personal Profile_ (oben rechts) -> _Edit Profile_ auswählen und in der linken Leiste auf _Password_ klicken
|
|
**a)** In Gitlab _Personal Profile_ (oben rechts) -> _Edit Profile_ auswählen und in der linken Leiste auf _Password_ klicken
|
|
|
|
|
|

|
|

|
|
|
|
|
|
#### b) Passwort einstellen
|
|
**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.
|
|
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.
|
|
|
|
|
|

|
|

|
|
|
|
|
|
|
|
</details>
|
|
|
|
|
|
|
|
|
|
# Ermitteln des eigenen Benutzernamens
|
|
# Ermitteln des eigenen Benutzernamens
|
|
|
|
<details>
|
|
|
|
<summary>Benutzername</summary>
|
|
|
|
|
|
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.
|
|
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.
|
|
|
|
|
|

|
|

|
|
|
|
|
|
|
|
</details>
|
|
|
|
|
|
# Finden der Repository-Adresse
|
|
# Finden der Repository-Adresse
|
|
|
|
<details>
|
|
|
|
<summary>Kopieren der Repository-Adresse</summary>
|
|
|
|
|
|
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`
|
|
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`
|
|
|
|
|
|

|
|

|
|
|
|
|
|
|
|
</details>
|
|
|
|
|
|
# Installation von Git
|
|
# Installation von Git
|
|
|
|
<details>
|
|
|
|
<summary>Installation von Git.</summary>
|
|
|
|
|
|
Da bei MacOS und Linux Betriebssystemen git schon vorinstalliert ist, muss lediglich auf Windows Rechnern git installiert werden.
|
|
Da bei MacOS und Linux Betriebssystemen git schon vorinstalliert ist, muss lediglich auf Windows Rechnern git installiert werden.
|
|
|
|
|
|
Dafür downloadet man die Installationsdatei von `https://gitforwindows.org/` und führt diese aus. Während der Installation sollten alle Voreinstellungen von git beibehalten werden.
|
|
Dafür 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)
|
|
**_Vorbereitung (Einmalig nach Installation)_**
|
|
|
|
|
|
Als _user.name_ sollte man den zuvor ermittelten Benutzernamen wählen.
|
|
Als _user.name_ sollte man den zuvor ermittelten Benutzernamen wählen.
|
|
|
|
|
... | @@ -91,11 +109,13 @@ Terminaleingabe: |
... | @@ -91,11 +109,13 @@ Terminaleingabe: |
|
> * git config --global user.email "max.mustermann@th-koeln.de"
|
|
> * git config --global user.email "max.mustermann@th-koeln.de"
|
|
> * git config --global user.name "mmustermann"
|
|
> * git config --global user.name "mmustermann"
|
|
|
|
|
|
|
|
</details>
|
|
|
|
|
|
# Benutzen von Terminalbefehlen
|
|
# Benutzen von Terminalbefehlen
|
|
|
|
|
|
## Klonen der Repository (Projekt)
|
|
## Klonen der Repository (Projekt)
|
|
|
|
<details>
|
|
|
|
<summary>Klonen.</summary>
|
|
|
|
|
|
Um ein Projekt zu klonen, erstellt man ein Neuen Ordner für das Projekt, startet das Git-Terminal (der im Terminal angezeigte Pfad, sollte der vom neu erstellten Ordner sein) und gibt folgenden Befehl ein `git clone Repository-Adresse`
|
|
Um ein Projekt zu klonen, erstellt man ein Neuen Ordner für das Projekt, startet das Git-Terminal (der im Terminal angezeigte Pfad, sollte der vom neu erstellten Ordner sein) und gibt folgenden Befehl ein `git clone Repository-Adresse`
|
|
|
|
|
... | @@ -106,9 +126,13 @@ In unserem Fall lautet die Repository-Adresse `https://git-ce.rwth-aachen.de/ass |
... | @@ -106,9 +126,13 @@ In unserem Fall lautet die Repository-Adresse `https://git-ce.rwth-aachen.de/ass |
|
> In unserem Fall lautet der Befehl zum klonen von diesem Repository: `git clone https://git-ce.rwth-aachen.de/assistance-systems/helloworld.git`
|
|
> In unserem Fall lautet der Befehl zum klonen von diesem Repository: `git clone https://git-ce.rwth-aachen.de/assistance-systems/helloworld.git`
|
|
|
|
|
|
Nach erfolgreicher Eingebe von Benutzernamen und Passwort wird das Repository geklont.
|
|
Nach erfolgreicher Eingebe von Benutzernamen und Passwort wird das Repository geklont.
|
|
|
|
</details>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## Erstellen von einem Branch
|
|
## Erstellen von einem Branch
|
|
|
|
<details>
|
|
|
|
<summary>Branch erstellen</summary>
|
|
|
|
|
|
> **Anmerkung:** 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 mit <Pfad> der Zielpfad ist zu dem man wechseln möchte: `cd <Pfad>`
|
|
> **Anmerkung:** 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 mit <Pfad> der Zielpfad ist zu dem man wechseln möchte: `cd <Pfad>`
|
|
|
|
|
... | @@ -118,25 +142,31 @@ Um den neuen lokalen Branch (hier: Test) zu erstellen und in diesen Branch zu we |
... | @@ -118,25 +142,31 @@ Um den neuen lokalen Branch (hier: Test) zu erstellen und in diesen Branch zu we |
|
|
|
|
|
> Mit dem checkout-Befehl ist es möglich jederzeit zwischen den verschiedenen Branches zu wechseln.
|
|
> Mit dem checkout-Befehl ist es möglich jederzeit zwischen den verschiedenen Branches zu wechseln.
|
|
|
|
|
|
Nun wird mit dem Befehl _git push_ der Branch _Test_ zum GitLab-Projekt (auf dem Server) hinzugefügt:
|
|
Nun wird mit dem push-Befehl der Branch _Test_ zum GitLab-Projekt (auf dem Server) hinzugefügt:
|
|
|
|
|
|
`git push origin Test`
|
|
`git push origin Test`
|
|
|
|
|
|
|
|
</details>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## Pushen von Daten
|
|
## Pushen von Daten
|
|
|
|
<details>
|
|
|
|
<summary>Pushen</summary>
|
|
|
|
|
|
> **Anmerkung:** Die folgenden Befehle können nur ausgeführt werden, wenn der angezeigte Pfad im Terminal das Hauptverzeichnis des lokalen Repositories ist.
|
|
> **Anmerkung:** Die folgenden Befehle können nur ausgeführt werden, wenn der angezeigte Pfad im Terminal das Hauptverzeichnis des lokalen Repositories ist.
|
|
|
|
|
|
#### a) Wenn Änderungen im lokalen Repository vorgenommen wurden, dann sollten diese zum Index mit folgendem Terminalbefehl hinzugefügt werden:
|
|
**a)** Wenn Änderungen im lokalen Repository vorgenommen wurden, dann sollten diese zum Index mit folgendem Befehl hinzugefügt werden:
|
|
|
|
|
|
`git add .`
|
|
`git add .`
|
|
|
|
|
|
#### b) Nun kann ein Commit einschließlich einer Kurzbeschreibung der Änderung mit folgendem Terminalbefehl durchgeführt werden:
|
|
**b)** Nun kann ein Commit einschließlich einer Kurzbeschreibung der Änderung mit folgendem Befehl durchgeführt werden:
|
|
|
|
|
|
`git commit -m "Hier steht ein Kommentar"`
|
|
`git commit -m "Hier steht ein Kommentar"`
|
|
|
|
|
|
> Dadurch wird nicht das Repository auf GitLab aktualisiert, sondern nur das lokale Repository.
|
|
> 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:
|
|
**c)** Nun können die Änderungen mit folgendem Befehl zum Remote-Repository hinzugefügt werden:
|
|
|
|
|
|
`git push REMOTE BRANCHNAME`
|
|
`git push REMOTE BRANCHNAME`
|
|
|
|
|
... | @@ -147,8 +177,12 @@ In unserem Beispiel lautet der Befehl somit: |
... | @@ -147,8 +177,12 @@ In unserem Beispiel lautet der Befehl somit: |
|
`git push origin Test`
|
|
`git push origin Test`
|
|
|
|
|
|
|
|
|
|
|
|
</details>
|
|
|
|
|
|
|
|
|
|
## Pullen von Daten
|
|
## Pullen von Daten
|
|
|
|
<details>
|
|
|
|
<summary>Pullen</summary>
|
|
|
|
|
|
> **Anmerkung:** Die folgenden Befehle können nur ausgeführt werden, wenn der angezeigte Pfad im Terminal das Hauptverzeichnis des lokalen Repositories ist.
|
|
> **Anmerkung:** Die folgenden Befehle können nur ausgeführt werden, wenn der angezeigte Pfad im Terminal das Hauptverzeichnis des lokalen Repositories ist.
|
|
|
|
|
... | @@ -162,37 +196,41 @@ Für unser Beispiel lautet der Befehl: |
... | @@ -162,37 +196,41 @@ Für unser Beispiel lautet der Befehl: |
|
`git pull https://git-ce.rwth-aachen.de/assistance-systems/helloworld.git Test`
|
|
`git pull https://git-ce.rwth-aachen.de/assistance-systems/helloworld.git Test`
|
|
|
|
|
|
|
|
|
|
|
|
</details>
|
|
|
|
|
|
|
|
|
|
|
|
# Alternative: GUI
|
|
|
|
<details>
|
|
|
|
<summary>Installation & Benutzung einer GUI.</summary>
|
|
|
|
|
|
# Installation von git-cola auf deinem Rechner
|
|
**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:
|
|
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`
|
|
`http://git-cola.github.io/downloads.html`
|
|
|
|
|
|
|
|
|
|
|
|
**_Klonen des Projekts (Repository)_**
|
|
# 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.
|
|
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..._
|
|
**a)** Starte _git-cola_ und klicke auf _Klonen..._
|
|
|
|
|
|

|
|

|
|
|
|
|
|
#### b) Job-Spezifikation
|
|
**b)** Job-Spezifikation
|
|
Anschließend erfolgt die Eingabe der Repository-Adresse und auswahl des Speicherpfades.
|
|
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.
|
|
**c)** Es wird nach einer Authentifizierung gefragt. Hierzu den zuvor ermittelten Benutzernamen und das festgelegte Passwort eingeben.
|
|
> ID: mmustermann
|
|
> ID: mmustermann
|
|
> PW: 123456
|
|
> PW: 123456
|
|
|
|
|
|
#### d) Nun wurde das Projekt geklont und es muss ein neuer Branch erstellt werden.
|
|
**d)** Nun wurde das Projekt geklont und es muss ein neuer Branch erstellt werden.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Erstellen von einem Branch
|
|
**_Erstellen von einem Branch_**
|
|
|
|
|
|
Zum erstellen von einem neuen Branch klickt man auf _Branch_ **(1)** und anschließend auf _Neu_ **(2)**
|
|
Zum erstellen von einem neuen Branch klickt man auf _Branch_ **(1)** und anschließend auf _Neu_ **(2)**
|
|
|
|
|
... | @@ -204,7 +242,7 @@ Anschließend gibt man dem neuen Branch einen Namen, z.b. Gruppe01 **(1)** und k |
... | @@ -204,7 +242,7 @@ Anschließend gibt man dem neuen Branch einen Namen, z.b. Gruppe01 **(1)** und k |
|
|
|
|
|
|
|
|
|
|
|
|
|
# Pushen des Projekts
|
|
**_Pushen des Projekts_**
|
|
|
|
|
|
Die lokal vorhandenen Branches werden unter _Branches_ **(1)** angezeigt, wo der aktuell ausgewählte Branch mit einem Stern gekennzeichnet ist.
|
|
Die lokal vorhandenen Branches werden unter _Branches_ **(1)** angezeigt, wo der aktuell ausgewählte Branch mit einem Stern gekennzeichnet ist.
|
|
|
|
|
... | @@ -232,9 +270,7 @@ Sollte schon ein externer Branch erstellt worden sein, so wählt man diesen zuvo |
... | @@ -232,9 +270,7 @@ Sollte schon ein externer Branch erstellt worden sein, so wählt man diesen zuvo |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
**_Pullen eines Projektes_**
|
|
|
|
|
|
# Pullen eines Projektes
|
|
|
|
|
|
|
|
Sollte das git-Repo (Projekt) unterschiede zur lokalen Kopie aufweisen, muss vor dem arbeiten am Projekt ein sog. "pull" stattfinden.
|
|
Sollte das git-Repo (Projekt) unterschiede zur lokalen Kopie aufweisen, muss vor dem arbeiten am Projekt ein sog. "pull" stattfinden.
|
|
|
|
|
... | @@ -247,6 +283,8 @@ Anschließend wählt man den Branch aus von dem man den sog. Pull machen möchte |
... | @@ -247,6 +283,8 @@ Anschließend wählt man den Branch aus von dem man den sog. Pull machen möchte |
|

|
|

|
|
|
|
|
|
|
|
|
|
|
|
</details>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
... | | ... | |