Benutzer-Werkzeuge

Webseiten-Werkzeuge


techniken:gitlab-dienst

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
techniken:gitlab-dienst [2019/04/25 21:05]
d.golovko [Gruppe erstellen]
techniken:gitlab-dienst [2021/02/01 17:41] (aktuell)
d.golovko [Versionsverwaltung mit Git+GitLab]
Zeile 1: Zeile 1:
 ====== Versionsverwaltung mit Git+GitLab ====== ====== Versionsverwaltung mit Git+GitLab ======
-Eine ausführliche Anleitung zur verwendung von Git gibt es hier: 
  
 +In euren Projekten werdet ihr kollaborativ an eurem Programm-Code arbeiten müssen. Dabei wird es vorkommen das zwei oder mehr, gleichzeitig Änderungen vornehmen, oder zu unterschiedlichen Terminen mit wechselnden Gruppenmitgliedern gearbeitet wird. Um diese Art der Zusammenarbeit zu erleichtern wird Git verwendet. Mit Git könnt ihr euren gemeinsamen Programm-Code aktuell halten und zeitgleich bearbeiten ohne dass ihr Gefahr läuft wichtige Arbeit von anderen zu überschreiben oder vorherige (funktionierende) Versionen eures Codes zu verlieren. Dies macht Git zu einem mächtigen Werkzeug welches weit verbreitet Anwendung erfährt. Damit werden oft Projekte verwaltet, die wesentlich komplexer ist als das, was ihr im Robotiklabor macht. Wenn ihr aber schon am Beispiel eines kleineren Projektes dem Umgang mit Git lernt, erleichtert es euch hoffentlich die Arbeit mit Git in der Zukunft. In diesem Artikel haben wir versucht, euch die Git-Basics vorzustellen. Weitere Infos findet ihr online, z.B.:
 +
 +Eine ausführliche Anleitung zur verwendung von Git gibt es hier:
  ​[[https://​git-scm.com/​book/​en/​v2/​Git-Basics-Getting-a-Git-Repository]]  ​[[https://​git-scm.com/​book/​en/​v2/​Git-Basics-Getting-a-Git-Repository]]
  
Zeile 7: Zeile 9:
 [[https://​rogerdudler.github.io/​git-guide/​index.de.html]] [[https://​rogerdudler.github.io/​git-guide/​index.de.html]]
  
-In euren Projekten werdet ​ihr kollaborativ an eurem Programm-Code arbeiten müssenDabei wird es vorkommen das zwei oder mehr, gleichzeitig Änderungen vornehmen, oder zu unterschiedlichen Terminen mit wechselnden Gruppenmitgliedern gearbeitet wirdUm diese Art der Zusammenarbeit zu erleichtern wird Git verwendet. Mit Git könnt ihr euren gemeinsamen Programm-Code aktuell halten und zeitgleich bearbeiten ohne dass ihr Gefahr läuft wichtige Arbeit von anderen zu überschreiben oder vorherige (funktionierende) Versionen eures Codes zu verlieren. Dies macht Git zu einem mächtigen Werkzeug welches weit verbreitet Anwendung erfährt.+Hier findet ​ihr Youtube-Videos zum Thema: https://www.youtube.com/​watch?​v=Nkz7TnhFvWU&​list=PL58qjcU5nk8s-UQHfzeVajBDwkbWqwSc6
 =====GitLab===== =====GitLab=====
 GitLab ist eine webbasierte Software zur Versionierung und gemeinsamen Bearbeitung von Programmcode mit Git. Kernkomponente ist ein Webportal an dem sich die Benutzer anmelden und eigene Projekte anlegen können. Für jedes Projekt wird automatisch ein Git-Repository angelegt, in dem dann der Programmcode versioniert abgelegt werden kann. Zusätzlich stellt GitLab zu jedem Projekt ein Wiki und einen Issue Tracker bereit über die dann Dokumentationen angeboten bzw. Fehler oder Änderungswünsche am Programmcode erfasst und verwaltet werden können. GitLab ist eine webbasierte Software zur Versionierung und gemeinsamen Bearbeitung von Programmcode mit Git. Kernkomponente ist ein Webportal an dem sich die Benutzer anmelden und eigene Projekte anlegen können. Für jedes Projekt wird automatisch ein Git-Repository angelegt, in dem dann der Programmcode versioniert abgelegt werden kann. Zusätzlich stellt GitLab zu jedem Projekt ein Wiki und einen Issue Tracker bereit über die dann Dokumentationen angeboten bzw. Fehler oder Änderungswünsche am Programmcode erfasst und verwaltet werden können.
Zeile 18: Zeile 20:
  
 ====== Installation ====== ====== Installation ======
-===== 0.: Software installieren =====+===== Software installieren =====
 ==== Kommandozeilenversion ==== ==== Kommandozeilenversion ====
 Die meisten Leute benutzen für die Verwaltung ihrer Git-Repositories ein Kommandozeilentool,​ für das es im Gegensatz zu den grafischen Tools auch ordentliche Doku gibt. Die meisten Leute benutzen für die Verwaltung ihrer Git-Repositories ein Kommandozeilentool,​ für das es im Gegensatz zu den grafischen Tools auch ordentliche Doku gibt.
Zeile 26: Zeile 28:
   * Windows: [[https://​git-scm.com/​download/​win|https://​git-scm.com/​download/​win]]   * Windows: [[https://​git-scm.com/​download/​win|https://​git-scm.com/​download/​win]]
   * Unix: [[https://​git-scm.com/​download/​linux|https://​git-scm.com/​download/​linux]]   * Unix: [[https://​git-scm.com/​download/​linux|https://​git-scm.com/​download/​linux]]
 +
 +Wenn alles geklappt hat, könnt ihr euch in der Kommandozeile z.B. die aktuelle Version von der git-Installation ansehen:
 +
 +<​code>​
 +git --version
 +</​code>​
 +
 +{{:​techniken:​git-version.png|}}
 +
 +Evtl. müsst ihr noch euren Namen und E-Mail festlegen:
 +<​code>​
 +git config --global user.name "​d.golovko"​
 +git config --global user.email "​d.golovko@tu-berlin.de"​
 +</​code>​
 +
 ==== Grafische Userinterfaces ==== ==== Grafische Userinterfaces ====
 Liebhaber Grafischer Oberflächen können eines der folgenden Programme benutzen - leider ist bei denen manchmal nicht wirklich klar, was eigentlich "unter der Motorhaube"​ passiert. Liebhaber Grafischer Oberflächen können eines der folgenden Programme benutzen - leider ist bei denen manchmal nicht wirklich klar, was eigentlich "unter der Motorhaube"​ passiert.
Zeile 32: Zeile 49:
   * Linux: ​   * Linux: ​
   * Win: z.B. [[https://​www.sourcetreeapp.com/​]]   * Win: z.B. [[https://​www.sourcetreeapp.com/​]]
-===== 1.: Falls Du der/die erste in eurem Team bist:  Gruppe und Projekt auf dem TU-Server erstellen =====+===== Falls Du der/die erste in eurem Team bist:  Gruppe und Projekt auf dem TU-Server erstellen =====
 ==== Bei GitLab der TU Berlin anmelden ==== ==== Bei GitLab der TU Berlin anmelden ====
   * Mit dem Browser auf [[https://​gitlab.tubit.tu-berlin.de|https://​gitlab.tubit.tu-berlin.de]] gehen.   * Mit dem Browser auf [[https://​gitlab.tubit.tu-berlin.de|https://​gitlab.tubit.tu-berlin.de]] gehen.
   * Mit den eigenen Tubit-Daten anmelden   * Mit den eigenen Tubit-Daten anmelden
-==== Gruppe erstellen ==== +  ​Kurzes Tutorial zum Einrichten des ersten Repositorys:​ {{:​techniken:​tubit-gitlab_schnelleinrichtung.pdf|}} 
-  ​Auf Knopf "New Group" drücken +
-  * Für euer Team eine Gruppe mit aussagekräftigem Namen anlegen+
-  * Im Menü auf der Linken Seite "​Members"​ anklicken +
-  * Über "Add Members"​ alle Mitglieder eures Teams hinzufügen. Dabei als Rolle mindestens "​Developer"​ wählen, damit die Leute auch Schreibzugriff haben.+
 ==== Projektrepository erstellen ==== ==== Projektrepository erstellen ====
   * Auf Knopf "New Project"​ drücken   * Auf Knopf "New Project"​ drücken
   * Bei "​Project path" einen aussagekräftigen Namen für das Projekt ohne irgendwelche Sonder- oder Leerzeichen eingeben   * Bei "​Project path" einen aussagekräftigen Namen für das Projekt ohne irgendwelche Sonder- oder Leerzeichen eingeben
-  * Als "​Namespace"​ die vorher erstellte Gruppe auswählen. 
   * Den "​Create Project"​ Knopf drücken.   * Den "​Create Project"​ Knopf drücken.
 +  * Um andere Teammitglieder hinzuzufügen,​ drückt auf Settings-->​Members (links unten). Die anderen Mitglieder sollen die Rolle "​Master"​ haben, damit sie volle Schreibrechte bekommen. ​
  
  
Zeile 72: Zeile 86:
 git clone <​repo>​ <​directory>​ git clone <​repo>​ <​directory>​
 </​code>​ </​code>​
-Ihr schreibt anstatt <​repo>​ die Adresse eures remote Repository, zu finden auf GitLab auf der Seite eures Projekts:+Ihr schreibt anstatt <​repo>​ die Adresse eures remote Repository, zu finden auf GitLab auf der Seite eures Projekts. Wechselt zum HTTPS-Link:
  
-{{ :gitlab-dienst:​bildschirmfoto_2016-02-11_um_16.09.32.png?800 |}}+{{ :techniken:gitlab-new-project.png?800 |}}
  
 Und für <​directory>​ gebt ihr das Verzeichnis an in dem eure working copy liegen soll. Der gesamte Befehl könnte dann wie folgt aussehen: Und für <​directory>​ gebt ihr das Verzeichnis an in dem eure working copy liegen soll. Der gesamte Befehl könnte dann wie folgt aussehen:
 <​code>​ <​code>​
-git clone git@gitlab.tubit.tu-berlin.de:c.jaedicke/myTestProject.git /​Documents/​Arduino/​+git clone https://gitlab.tubit.tu-berlin.de/d.golovko/MyProject.git /​Documents/​Arduino/​
 </​code>​ </​code>​
 Nun habt ihr eine Kopie eures Projekts lokal gespeichert und könnt Änderungen am workspace vornehmen. Nun habt ihr eine Kopie eures Projekts lokal gespeichert und könnt Änderungen am workspace vornehmen.
 +
 +Mit mit dem ''​cd''​-Befehl könnt ihr in der Kommandozeile zum entsprechenden Ordner wechseln:
 +<​code>​
 +cd /​Documents/​Arduino/​MyProject/​
 +</​code>​
 ===== 2.: Neue Dateien der Kopie auf dem eigenen Rechner hinzufügen ("​add",​ "​commit"​)===== ===== 2.: Neue Dateien der Kopie auf dem eigenen Rechner hinzufügen ("​add",​ "​commit"​)=====
  
Zeile 106: Zeile 125:
 </​code>​ </​code>​
 Nun befindet sich die Datei in eurem lokalen Repository. Nun befindet sich die Datei in eurem lokalen Repository.
-===== 3.: Änderungen auf dem eigenen Rechner in das Repository auf dem TU Server übertragen ("​push"​) ===== +===== 3.: Änderungen vom TU Server auf den eigenen Rechner übertragen ("​pull"​) =====
-Um die Änderungen auch auf euerem remote Repository verfügbar zu machen verwendet ihr folgenden Befehl: +
-<​code>​ +
-git push origin master +
-</​code>​ +
-===== 4.: Änderungen vom TU Server auf den eigenen Rechner übertragen ("​pull"​) =====+
 Um die aktuelle Version von eurem remote Repository zu bekommen verwendet ihr den Befehl: Um die aktuelle Version von eurem remote Repository zu bekommen verwendet ihr den Befehl:
 <​code>​ <​code>​
 git pull git pull
 </​code>​ </​code>​
-===== 5.: Versionskonflikte  ​=====+Dieser Befehl ist immer vor der Übertragung der eigenen Änderungen in das Repository empfohlen, um eventuelle Änderungen von Anderen einzuarbeiten,​ bevor ihr euren Code pusht (s. nächten Punkt).  
 +===== 4.: Änderungen auf dem eigenen Rechner in das Repository auf dem TU Server übertragen ("​push"​) ​===== 
 +Um die Änderungen auch auf euerem remote Repository verfügbar zu machen verwendet ihr folgenden Befehl: 
 +<​code>​ 
 +git push origin master 
 +</​code>​ 
 <note important>​Bevor am Code gearbeitet wird immer die aktuellste Version "​pullen",​ nach getaner Arbeit den neuen Stand "​pushen"​!</​note>​ <note important>​Bevor am Code gearbeitet wird immer die aktuellste Version "​pullen",​ nach getaner Arbeit den neuen Stand "​pushen"​!</​note>​
 +
 +
 +===== 5.: Versionskonflikte ​ =====
 Falls jedoch gleichzeitig am Code gearbeitet wird kann es zu Versionskonflikten kommen, diese müssen manuell gelöst werden bevor ein push/pull durchgeführt werden kann. Falls jedoch gleichzeitig am Code gearbeitet wird kann es zu Versionskonflikten kommen, diese müssen manuell gelöst werden bevor ein push/pull durchgeführt werden kann.
  
Zeile 181: Zeile 204:
 [[gitlab-dienst::​Commit/​Push]] [[gitlab-dienst::​Commit/​Push]]
  
-==== Branching ====+===== Branching ​=====
 In Git gibt es die Möglichkeit sogenannte branches zu erstellen. In Git gibt es die Möglichkeit sogenannte branches zu erstellen.
 Ein Branch ist so etwas wie eine Kopie des bisherigen Programms in einer Art unter-repository. Bei Erstellung eines neuen repositorys wird automatisch der "​master"​ Branch erstellt. In diesem legt man die Ordnerstruktur des Projekts fest. Danach kann das gesamte Team alle Änderungen direkt in den master branch pushen. Das Problem hierbei ist, dass es vorkommen kann, dass jemand fehlerhaften code hochlädt oder dass eine änderung in einem anderen Programmteil einen Fehler in unserem hervorruft. Um derartige Konflikte zu vermeiden ergibt es bei größeren Projekten Sinn für verschiedene Teile des Programms verschiedene branches zu erstellen. Ein Branch ist so etwas wie eine Kopie des bisherigen Programms in einer Art unter-repository. Bei Erstellung eines neuen repositorys wird automatisch der "​master"​ Branch erstellt. In diesem legt man die Ordnerstruktur des Projekts fest. Danach kann das gesamte Team alle Änderungen direkt in den master branch pushen. Das Problem hierbei ist, dass es vorkommen kann, dass jemand fehlerhaften code hochlädt oder dass eine änderung in einem anderen Programmteil einen Fehler in unserem hervorruft. Um derartige Konflikte zu vermeiden ergibt es bei größeren Projekten Sinn für verschiedene Teile des Programms verschiedene branches zu erstellen.
techniken/gitlab-dienst.1556219106.txt.gz · Zuletzt geändert: 2019/04/25 21:05 von d.golovko