Die von mir am häufigsten eingesetzten git-Commands möchte ich auf dieser Seite vorstellen.
git status
Zeigt den Status des aktuellen branch an (u.a. den branch-Namen)
git checkout <branchname>
Checkt den Branch <branchname> aus.
git checkout -b <branchname>
Erstellt den Branch <branchname> und checkt ihn aus.
git add . git add <datei>
Fügt alle ("git add .") oder nur bestimmte Änderungen dem Index hinzu. Hinzugefügte Änderungen können im nächsten Schritt commitet werden.
git commit -m "<commit message>"
Commitet die hinzugefügten Änderungen auf den aktuell ausgecheckten Branch und versieht diesen Commit dabei mit der angegebenen Commit Message <commit message>.
git push
Ist ein Remote Repo eingerichtet, werden mit diesem Befehl die commiteten Änderungen auf das Remote Repo gepusht.
git pull
Gibt es auf dem aktuell ausgecheckten Branch Änderungen auf dem Remote-Branch werden hiermit die Änderungen heruntergezogen.
git fetch
Hiermit werden zum Beispiel neue Branches und Commits vom Remote Repo lokal bekannt gemacht. Damit ist es zum Beispiel möglich gezielt Änderungen von anderen Branches auf den aktuellen Branch zu übernehmen, ohne diesen Auschecken zu müssen.
git cherry-pick <hash>
Fügt den Commit mit dem Hash <hash> dem aktuellen Branch hinzu.
git rebase <hash>
Rebased den aktuellen Branch auf den Stand nach dem Commit mit dem Hash <hash>. Vorsicht: Bei diesem Command ist nachher ein force push nötig:
git push -f
Um sich die Arbeit mit git etwas zu erleichtern, können in der .gitconfig, die wir schon hier kennengelernt haben, Aliasse für beliebte Commands definiert werden. In meiner Umgebung verwende ich folgende Aliasse:
... [alias] lsa = log --graph --all --date=short --pretty=format:\"%C(yellow)%h%x20%C(white)%cd%C(green)%d%C(reset)%x20%s%x20$\" ls = log --graph --date=short --pretty=format:\"%C(yellow)%h%x20%C(white)%cd%C(green)%d%C(reset)%x20%s%x20$\" st = status co = checkout nuke = reset --hard HEAD del = branch -D ...
Auf der linken Seite steht der Alias, auf der rechten das original git-Command.
git st
ist also gleichbedeutend mit
git status