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/05/21 11:00]
d.golovko [Kommandozeilenversion]
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 34: Zeile 36:
  
 {{:​techniken:​git-version.png|}} {{:​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 ====
Zeile 41: 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 120: 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 195: 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.1558429215.txt.gz · Zuletzt geändert: 2019/05/21 11:00 von d.golovko