Git Spickzettel

Änderungen in einer Datei seit dem letzten commit rückgängig machen

Wenn man Änderungen an einer Datei gemacht hat, dann aber doch den ursprünglichen Zustand der Datei vom letzten commit wieder herstellen möchte:

$ git checkout -- datei

Letzten commit rückgängig machen (push ist noch NICHT erfolgt)

$ git reset --hard HEAD^

Git Tag

git tag -l			Anzeigen
git tag -a [-m msg] tagname		Annotated, unsigned tag erzeugen
git tag -s [-m msg] tagname		oder
git tag -u gpg-uid tagname	Signierten Tag erzeugen
git push origin tagname		erzeugten tag auf repo-server pushen
git tag -v v0.9.0		Signatur mit GPG ueberpruefen

Git branch

git branch [--list]		Anzeigen

git branch -a			Auch remote branches zeigen

git branch branchname		Neuen branch erzeugen
git checkout branchname		Zu branch wechseln
git push -u origin branchname	Branch auf remote server pushen
git branch -d branchname	Branch lokal löschen
git push remote_name --delete branch_name	Branch remote löschen

Branch 'devel' mit dem master branch zusammenführen:

$ git checkout master $ git merge devel

remote branch in lokalem repo bearbeitbar machen

$ git checkout -b branchname_local origin/branchname_remote

remote branch löschen

$ git push origin :branchname_remote

Um diese (scheinbar) seltsame Syntax zu verstehen, nochmals die allgemeine Syntax eines push in Erinnerung rufen:

$ git push [remotename] [localbranch]:[remotebranch]

Die obige Form sagt also "Nehme NICHTS und pushe es in den remotebranch"

Sonstiges / Spezielles

Commit von fremdem Author tätigen

Da gibt es zwei Möglichkeiten, deren genaueren Auswirkungen wohl erst noch testen muss ;-)

Der vermutlich offizielle Weg, wenn man im Idealfall einen Patch per Mail erhalten hat geht so (man muss die Mail als Text abspeichern, git verwendet die From: Zeile als Author und das Subject: als Commit Message)

$ git am mail_file.txt

Eine andere Möglichkeit ist:

$ git -c author.name="..." -c author.email="..." commit ...