git config --global user.email johndoe@example.com git config --list git help <verb> git init # Ein Git Repository erstellen (erstellt .git) git --bare init # Ein Git Repository ohne Working Directory erstellen git clone <URL> # Ein Git Repository klonen git add <file> # Zur Versionsverwaltung hizufgen oder stagen -A, --all # Whle alle Files aus git rm <file> # Wird beim nchsten commit gelscht --cached # Aus Versionskontrolle entfernen git status # Zeigt Branch und modified Files git reset HEAD <file> # Datei aus dem Staging Area entfernen git checkout -- <file> # Macht nderungen an der Datei rckgngig git diff # Vergleicht Arbeitsverzeichnis mit Staging Area --staged # Vergleicht Staging Area mit letztem Commit git commit # nderungen committen -v # Verbose -m 'bla' # Nachricht gleich anfgen -a # Staging Area berspringen --amend # Dateien nachtrglich zum letzten Commit hinzufgen oder Meldung nde rn git mv <file_from> <file_to> # Umbenennen einer Datei (oder: mv, git rm, git add) git remote # Zeigt die externen Server fr ein Projekt an -v # Zeigt auch die URL an add <shortname> <url> # Fgt eine neue Remote Repository hinzu show <remote-name> # Zeigt Informationen ber die Remote Repository rename <old-name> <new-name> # Umbenennen der Remote Repository rm <remote-name> # Entfernt eine Remote Repository git fetch <remote-name> # Daten aus Remote Repository herunterladen/aktu alisieren git push # Ldt einen Tracking-Branch hoch <remote-name> <branch-name> # Ldt den Branch in die Repository hoch (z.B.: gi t push origin master) <remote-name> :<branch> # Lscht einen Remote-Branch git pull # Fetched und merged einen Tracking-Branch git request-pull <remote>/<branch> <fork-name> # Generiert die Nachricht fr eine n Pull-Request von fork nach remote-branch git format-patch <branch> # Erstellt Patch-Dateien, die man einem Maintain er mailen kann. Der aktuelle Branch soll nach Branch gemergt werden -M # Look for renames git branch # Listet die Branches auf <branch-name> # Erzeugt einen neuen Branch -d <branch-name> # Lscht einen Branch -v # Zeigt den letzten Commit jedes Branches an --merged, --no-merged # Listet Branches auf, die mit dem aktuellen gem erged bzw. nicht gemerged sind git checkout <branch-name> # Wechselt den Branch -b <branch-name> # Erzeugt einen neuen Branch und wechselt zu ihm -b <branch-name> <remote-name>/<branch> # Erzeugt einen Tracking-Branch auf Grundlage eines Remote-Branches --track <remote-name>/<branch> # Dasselbe wie oben git merge <branch> # Merge branch in den aktuellen Branch --no-commit # Es soll nicht automatisch committed werden --squash # Nimmt die nderungen von Branch, macht daraus ei nen Commit und wendet den an git mergetool # ffnet ein grafisches Tool zum mergen # Do not rebase commits that you have pushed to a public repository. git rebase <branch> # Macht den aktuellen Branch zu einem Patch und fhrt in auf branch aus <base-branch> <theme-branch> # Rebased den Themenbranch auf den Basisbranch -i # interaktiv --onto <br1> <br2> <br3> # Wende die Patches, seit br3 von br2 abgespalte n ist, auf br1 an git tag # Tags anzeigen <tagname> # Einfacher Tag anlegen -a <tagname> # Kommentierter Tag anlegen -a <tagname> <checksum> # In nachhinein eine alte Version taggen -m 'bla' # Nachricht gleich anfgen git show <tagname> # Listet Informationen ber die Tags auf git push origin <tagname> # Tag auf den Server pushen git push origin --tags # Alle Tags auf den Server pushen git log # Log anschauen -p # Zeigt nderungen an --stat # Zeigt in welchen Files etwas gendert wurde --shortstat # Kurzstatistik --pretty=<format> # ndert Formatierung (oneline, short, full, fuller, forma t:"%an, %ar : %s") --graph # Zeichnet einen ASCII-Graphen -<n> # Zeigt die letzten n Eintrge an --since, --after # Zeigt nur Commits, die nach dem angegebenen Datum ange legt wurden. --until, --before # Zeigt nur Commits, die vor dem angegebenen Datum angel egt wurden. --author # Zeigt nur Commits, die von dem angegebenen Autor vorge nommen wurden. --committer # Zeigt nur Commits, die von dem angegebenen Committer a ngelegt wurden. git diff master...contrib # Zeigt die nderungen des contrib Branches seit dem gemeinsamen Vorfahren mit master. git archive master --prefix='project/' | gzip > `git describe master`.tar.gzip # Erstellt ein Archiv aus dem letzten snapshot. gitk # Grafische Version von git log .gitignore *.[oa] # Ignoriere Dateien mit Endung .o oder .a !lib.a # nicht aber lib.a Dateien (obwohl obige Zeile *.a ignoriert) /TODO # ignoriert eine TODO Datei nur im Wurzelverzeichnis, nicht aber in Unterverzeichnissen build/ # ignoriert alle Dateien im build/ Verzeichnis doc/*.txt # ignoriert doc/notes.txt, aber nicht doc/server/arch.txt Auto-Vervollstndigung Die Datei "contrib/completion/git-completion.bash" ins Home-Verzeichnis kopieren und "source ~/.git-completion.bash" in die .bashrc schreiben. Alternativ nach " /etc/bash_completion.d/" kopieren (fr alle Benutzer). Alias git config --global alias.unstage 'reset HEAD --' git config --global alias.last 'log -1 HEAD' Tips git diff --check # Checke vor dem Commit ob Whitespace-Fehler vorhanden s ind Commit-Message: Short summary (max. 50 chars), blank line, detailed explanation (wrapped at ~72 chars) SVN (Keep a linear Git history that doesn't contain merge commits made by git merge. Rebase any work you do outside of your mainline branch back onto it; don't merge it in.) git svn clone <URL> -T trunk -b branches -t tags # SVN Reposiory klonen git svn clone <URL> -s # Ist dasselbe wie oben git commit -am 'bla' git svn dcommit # Zum SVN Server pushen git svn rebase # Macht ein Pull und ein Rebase der Commits git svn fetch # Ldt neue Dateien herunter (rebase besser) git svn branch <branchname> # Erstellt im SVN einen neuen Branch git branch <branch> remotes/<branch> # Erstellt einen Branch, der mit einem S VN-Branch verknpft ist git merge <branch> # Merges zwei Branches. Danach sollte de r alte Branch gelscht werden. Alles wird ein einen Commit gesquashed git svn log # Log im SVN-Format. Ist nicht aktuell git svn show-ignore > .git/info/exclude # Erstellt ein .gitignore mit de m Inhalt von svn:ignore