Git Tutorial
Git ist eine freie open Source Software zum Verwalten von kleinen bis großen Projekten. Sie dient dazu die Projekte versionsbasierend zu verwalten.
Dies soll als Tutorial mit den gängigsten Befehlen verstanden werden, testen und probieren sie die Befehle und deren Handhabung in kleinen Testszenarien durch BEVOR sie an Produktivsystemen Hand anlegen!
Git Client
Installation unter Windows
Der Windows Git Client Git for Windows kann unter https://gitforwindows.org/ heruntergeladen werden. Im Normalfall kann er im Standardordnet installiert werden.

Wir empfehlen die Verwendung von TortoiseGit (siehe unten) als grafische Schnittstelle für Git unter Windows. Wenn Sie diese Verwenden wollen, kann die Optionen Git GUI Here im Installer abgewählt werden.

Sollten Sie einen bestimmten Editor (z.B. Notepad++) verwenden wollen, kann dies hier konfiguriert werden.

Wenn es keinen bestimmten Grund für Sie gibt, die folgenden Einstellung zu ändern, ist hier der Standard zu empfehlen.


Verwendung des SSH Clients

Verwendung der SSL Bibliothek

Umgang mit Zeilenumbrüchen

Einstellung der Eingabeaufforderung

Experimentelle Funktionen
Installation unter Linux
Unter den meisten Linux Distributionen kann der Git Client einfach über die Paketverwaltung installiert werden.
Apt-basierende Systeme
z.B. Debian, Raspbian, Ubuntu, etc.
# apt install git
Yum-basierende Systeme
z.B. Red Hat, Fedora, CentOS, etc.
# yum install git
Quellcode selbst kompilieren
Sollte es notwendig sein, kann der Quellcode auch selbst kompiliert und installiert werden - eine einfache Anleitung dazu findet sich unter:
Git installieren von git-scm.com:https://git-scm.com/book/de/v2/Erste-Schritte-Git-installieren
Verwendung in der Kommandozeile
Ohne weitere Werkzeuge oder IDE-Integration kann Git einfach über die Kommandozeile des jeweiligen Betriebsystems genutzt werden. Z.B. Eingabeaufforderung, PowerShell oder Git Bash unter Windows (wird durch dem Git for Windows Installer mitinstalliert) oder Bash unter Linux. ## Setup vor der ersten Nutzung Wenn Git auf dem Computer noch nie werwendet wurde, ist notwendig den globalen Benutzer und dessen E-Mail-Adresse zu konfigurieren.
$ git config --global user.name "[Mein User Name]"
$ git config --global user.email "[User @ Mailserver . TLD]"
Die eckigen Klammern samt ihrer Inhalte müssen entsprechend ersetzt werden. Zum Beispiel
$ git config --global user.name "Melanie Amirah"
$ git config --global user.email "melanie.amirah@unileoben.ac.at"
Ein am Server bestehendes Repository auschecken
Mit dem Befehl clone kann ein bestehendes Repository abgerufen werden - dabei wird eine lokale Kopie erstellt.
$ git clone [Repository URL]
Die eckigen Klammern samt ihrer Inhalte müssen entsprechend ersetzt werden. Zum Beispiel
$ git clone git.unileoben.ac.at/howto/git
Ein lokal bestehendes Verzeichnis in ein Repository pushen
Zuerst muss mit dem Befehl cd in das entsprechende Verzeichnis gewechelt werden. Dann Der Befehl init dient dazu, ein lokales Repository für ein bereits existierendes Verzeichnis zu erstellen. Um dieses dann auf einen Server hochzuladen, wird mit remote add ein entsprechender Server hinzugefügt, mit add die entsprechenden Dateien hinzugefügt, diese werden mit commit zu einem Paket zusammengefasst und schuléndlich mit push an den Server übermittelt.
cd my_gitlab_documentation
git init
git remote add origin git.unileoben.ac.at/howto/git
git add .
git commit -m "Initial commit"
git push -u origin master
Verwendung mit unterschiedlichen Werkzeugen
Git mit Windows Explorer Erweiterung (TortoiseGit)
TortoiseGit (https://tortoisegit.org/) stellt unter Windows eine sehr einfach zu verwendende Erweiterung des Windows Explorers dar, die es ermöglicht Git ohne Kommandozeile zu verwenden.

Ein am Server bestehendes Repository auschecken

Ein lokal bestehendes Verzeichnis in ein Repository pushen

Git mit MATLAB
Seit MATLAB R2014b git es eine Git Integration in MATLAB, mit der man auch ohne Verwendung der Kommandozeile Projekte in Git verwalten kann.

Ein am Server bestehendes Repository auschecken
Wenn mann im Kontextmenü Manage files… auswählt, kann man ein bestehendes Repository abrufen.

Ein lokal bestehendes Verzeichnis in ein Repository pushen
Wenn ein bestehendes Verzeichnis hochgeladen werden soll, geht das in MATLAB nur dann, wenn man aus dem Verzeichnis ein Projekt macht.


Git mit JetBrains IntelliJ, PyCharm, CLion, etc.
JetBrains verfügt über ein Protfolio von sehr mächtigen Entwicklungswerkzeugen für verschiedenste Programmiersprachen und Frameworks. Dieses Protfolio steht allen Lehrenden und Studierenden der Montauniversität Leoben unter www.jetbrains.com/student/ kostenlos zur Verfügung.
In diesem Beispiel wird JetBrains PyCharm verwendet, aber grundsätzlich funktioniert die Integration der Versionskontrolle bei allen Produkten von JetBrains gleich.
Ein am Server bestehendes Repository auschecken


Ein lokal bestehendes Verzeichnis in ein Repository pushen



Die erste URL eines Projektes sollte der Konvention nach immer den Namen origin haben - wird kein Name angegeben, wird dieser automatisch richtig gesetzt
Weiterführende Anleitungen
- git - Der einfache Einstieg - https://rogerdudler.github.io/git-guide/index.de.html
- Erste Schritte mit Git - https://riptutorial.com/de/git
- Pro Git - https://git-scm.com/book/de/v2/
- TortoiseGit - Documentation - https://tortoisegit.org/docs/tortoisegit/
- MATLAB - Set up Git Source Control - https://de.mathworks.com/help/matlab/matlab_prog/set-up-git-source-control.html
- MATLAB - Use Source Control with Projects - https://de.mathworks.com/help/matlab/matlab_prog/use-source-control-with-projects.html
- JetBrains - Git - https://www.jetbrains.com/help/idea/using-git-integration.html
Hinweise
- Der in diesem Tutorial verwendete User mit dem Namen Melanie Amirah wurde durch einen Zufallsgenerator erstellt und ist damit rein fiktiv.
- Dieses Howto wird in Markdown (https://de.wikipedia.org/wiki/Markdown) verfasst. Zur einfacheren Verteilung werden aus dem Markdown Quellcode nach jedem Update auch Word und PDF Dokumente erzeugt. Änderungung sind ausschließlich am Quellcode durchzuführen, da alle anderen Dokumente jederzeit wieder überschrieben werden können.