Git ist eine moderne plattformübergreifende freie Sourcecodeverwaltungs Software. Git ist sehr flexible und kann auch Offline verwendet werden – lokal auf dem Rechner.
Der Name „Git“ bedeutet in der britischen Umgangssprache so viel wie „Blödmann“. Linus Torvalds erklärte seine Wahl des ungewöhnlichen Namens mit einem Witz sowie damit, dass das Wort praktikabel und in der Softwarewelt noch weitgehend unbenutzt war:
“I’m an egotistical bastard, and I name all my projects after myself. First ‘Linux’, now ‘Git’.”
– Linus Torvalds[6]
https://de.wikipedia.org/wiki/Git
Grundbegriffe
Repos | Sourcecode-Speicher mit History |
Commits | Schappschüsse des Filesystems |
Commit History | Verkettung der Schnappschüsse / Commits |
Root Commit | Das allererste Commit |
Branches | Verzweigung |
Aufbau eines Commits
Filesystem-Schnappschuss (Files und Verzeichnisse) |
Metadaten (Name, Datum, Kommentar…) |
Zeiger auf das letzte Commit (beim Ersten leer, ansonsten Hashwert des vorhergehenden Commits) |
Hashwert (Aus allen Daten des Commits) |
Git – Pointers

1) | Head-Pointer |
2) | Master-Pointer |
Basisfunktionen
Version von Git anzeigen:
> git --version
git config –global user.name „<Name>“ | Festlegen des eigenen Namens |
git config –global user.email „<Email>“ | Festlegen der eigenen Emailadresse |
git init <name> | Neues Repo mit <name> anlegen |
git status | Überblick über das aktuelle Repo |
git add <filename> | Änderung hinzufügen (Staging) |
git add . | Alle neuen Änderungen übernehmen |
git commit -m „<Kommentar>“ | Commit erstellen |
git log | Zeigt History an |
git log — online | Zeigt verkürzte History an |
git checkout <Hashwert> | Wechselt den Head-Pointer auf den Commit mit dem <Hashwert> |
git checkout master | Setzt den Head-Pointer wieder auf den Master Branch |
git revert <Hashwert> | Macht den Commit <Hashwert> rückgänging Anmerkung: Commit Message wird angezeigt, welche noch geändert werden könnte. Standard Editor VIM mit :qa verlassen |
git reset –hard <Hashwert> | Abhängen eines Commits aus der History (dangeling) |
git branch <name> | Neuer Branch erstellen |
git branch | Alle Branch-Pointer anzeigen |
git checkout <Branch-Name> | Wechselt in den angegebenen Branch |
git merge <Branch-Name> | Führt einen merge mit dem <Branch-Name> durch |
Mergen – „fast-forward“
- git checkout master
- git merge <Branch-Name>
Visialisierungen mit GitViz



Arbeiten mit Git Remote-Server
Push | Übermittelt lokale Änderungen auf den Server |
Fetch | Holt Änderungen vom Remote-Server ab |
Pull | Holt Änderungen vom Remote-Server ab und integriert diese im eigenen Code |
Clone | Erstellt eine Kopie auf dem lokalen PC |
git clone <URL_Repo> | Erstellt eine lokale Kopie des Repos (Bsp: https://github.com/Readify/GitViz.git) |
git remote –verbose | Zeigt den verwendete Kurzname / URL des Repos an (Meist: origin) |
git push | Übermittelt die lokalen Commits zum Remote-Server |
git pull | Holt alle Änderungen vom Remote-Server und merged diese ins lokale Repo |
Im Beispiel unten, sehen wir ein Repo mit verschiedenen Git-Pointers:
- HEAD -> Master enthält Änderungen, welche remote noch nicht vorhanden sind
- Die Pointers „origin/master“ und origin/HEAD sind lokal und remote identisch
- Es gibt einen Branch „origin/netcore“
- Es gibt einen Tag 1.0.2.0

Konflikt zwischen Server und lokalem Repo korrigieren
- git status -> zeigt an wo die Probleme sind
- Problem in den Dateien beheben -> werden durch Kommentare von Git hervorgehoben
- git add <Dateiname> -> Änderungen korrigiert
- git commit -m „<Bemerkung>“
- git push -> Konsolidierte Dateien auf remote Server übertragen
Nützliches
Offizielle Git Webseite https://git-scm.com/
Readify GitViz https://github.com/Readify/GitViz
GitHub – Git cheat sheet https://training.github.com/downloads/de/github-git-cheat-sheet/
Git cheat sheet als PDF https://rhoenerlebnis.de/_upl/de/_pdf-seite/git_cheatsheet_de_white.pdf