Hier findet Ihr die wichtigsten Git-Befehle. Selbst wenn Ihr eine grafische Git-Oberfläche verwendet ist es gut zu wissen welche Shell-Befehle es gibt und was diese tun.
Git einrichten | |
init | Neues Repository erstellen (aktuelles Verzeichnis). |
init --bare | Ein zentrales Repository erstellen. Achtung! Der Ordnername sollte mit .git enden (z.B. my-project.git). |
clone <repo> | Kopiert ein Repository welches unter <repo> zu finden ist. |
config --global | Globale Konfiguration von git (z.B. Benutzerinfo angeben). |
Mit Git lokal arbeiten | |
add <name> | Dateien und Ordner zur "Staging Area" hinzufügen (abhängig von <name>). Mit * werden alle Änderung hinzugefügt (.ignore-Regeln werden aber beachtet). |
commit | Änderungen in der "Staged Area" werden in das lokale Repository übernommen. |
stash | Speichert alle lokalen Änderungen in ein lokales Stash-Objekt. Nützlich um aktuelle Arbeit ohne Commit zu sichern. |
status | Zeigt offene Änderungen, welche noch nicht committed wuden. |
log | Zeigt Commits (Ausgabe kann über Parameter eingestellt werden, wie z.B. --graph). |
Branching | |
branch | Branches verwalten (erstellen, löschen, umbenennen) |
checkout <branch> | Von einem Branch in ein anderes wechseln. Es können auch einzelne Dateien oder Commits ausgecheckt werden. |
merge --no-ff <branch> | Das aktuelle Branch mit <branch> zusammenführen. Für Größere merges empfiehlt es sich immer --no-ff zu verwenden (bessere Chronik). Nach dem Merge muss normal committed werden. |
Git synchronisieren (mit zentralem Repository) | |
remote | Remote-Verbindungen verwalten. Dieser Befehl erstellt quasi ein Alias für umständlich lange URL's. |
fetch | Git holt sich den aktuellen Stand des zentralen Repositories (ohne merge). Dies kann nützlich sein um erst ein Review vor dem git merge zu machen. |
pull | Macht das selbe wie "git fetch" aber zusätzlich noch "git merge". |
push | Lokale Commits zum zentralen Repository schicken. |
Fortgeschrittene Funktionen | |
checkout | Kann ältere Commits wiederherstellen (oder zu einem anderen Branch wechseln). |
revert | TODO |
reset | TODO |
clean | TODO |
commit --amend | Änderungen dem letzten Commit hinzufügen (nur erlaubt solange noch kein push erfolgt ist!). |
rebase | TODO |
reflog | TODO |
Tipps & Tricks
Lokale Änderungen verwerfen
Folgende Befehle verwerfen alle Änderungen und stellen quasi den Server-Zustand her:
git reset --hard git clean -df
Squash - (Lokale) Commits zusammenführen
Manchmal ist es praktisch Zwischenstände in kurzen Abständen zu committen, besonders um etwas auszuprobieren. Blöd nur wenn jedes "Mini"-Commit zum Server geschickt wird. In so einem Fall wünscht man sich eine Merge-Funktion der lokalen Commits um einen großen zu erhalten.
Achtung: Dieser Befehl darf nur für lokale Commits angewendet werden welche noch nicht zum Server gepusht wurden!
Folgt noch...