Sie sind auf Seite 1von 2

fournova

GIT CHEAT SHEET


presented by Tower - the best Git client for Mac and Windows

REPOS ERSTELLEN BRANCHES & TAGS MERGE & REBASE


Clonen eines bestehenden Repos Alle Branches auflisten Merge von <branch> in aktuellen HEAD
$ git clone ssh://user@domain.com/repo.git $ git branch -av $ git merge <branch>

Neues, lokales Repo erstellen Aktuellen HEAD-Branch wechseln Aktuellen HEAD auf <branch>rebasen
$ git init $ git checkout <branch> Kein Rebase von Commits, die published sind!
$ git rebase <branch>
Neuen lokalen Branch erstellen
LOKALE ÄNDERUNGEN (basierend auf dem aktuellen HEAD) Rebase abbrechen
$ git branch <new-branch> $ git rebase --abort
Veränderte Files in der Working Copy
$ git status Neuen lokalen Branch auf Basis eines <remo- Rebase nach Konfliktlösung fortsetzen
te/branch> erstellen $ git rebase --continue
Änderungen an versionierten Files
$ git checkout --track <remote/branch>
$ git diff Konflikt in externem Mergetool lösen
Lokalen Branch löschen $ git mergetool
Alle lokalen Änderungen zum nächsten Com-
$ git branch -d <branch>
mit hinzufügen Konflikt als ‹resolved› markieren nach manu-
$ git add . Tag auf aktuellem Commit erstellen eller Konfliktlösung im Editor
$ git tag <tag-name> $ git add <resolved-file>
Teile der Änderungen in <file> zum
nächsten Commit hinzufügen $ git rm <resolved-file>

$ git add -p <file> UPDATE & PUBLISH


Alle lokalen Änderungen an bereits Alle konfigurierten remote Repos listen UNDO
versionierten Files direkt committen $ git remote -v Alle lokalen Änderungen in der Working Copy
$ git commit -a verwerfen
Infos über ein <remote> anzeigen
Zur Staging Area hinzugefügte $ git reset --hard HEAD
$ git remote show <remote>
Änderungen committen
Weiteres remote Repo anbinden  Lokale Änderungen in <file> verwerfen
$ git commit
$ git checkout HEAD <file>
$ git remote add <shortname> <url>
Den letzten / neuesten Commit ändern
Alle Änderungen von <remote> runterladen, Commit «rückgängig» machen durch neuen
Keine bereits veröffentlichten Commits ändern!
aber nicht in HEADintegrieren Commit mit gegens. Änderungen
$ git commit --amend
$ git revert <commit>
$ git fetch <remote>

Änderungen herunterladen und direkt in HEAD-Zeiger auf einen früheren Commit


COMMIT LOG setzen und
HEADintegrieren / mergen
Alle Commits chronologisch anzeigen $ git pull <remote> <branch> …alle Änderungen seither verwerfen
$ git log $ git reset --hard <commit>
Lokale Änderungen auf Remote pushen
Änderungen an einem speziellen <file> über $ git push <remote> <branch> …alle Änderungen behalten
versch. Versionen hinweg anzeigen $ git reset <commit>
$ git log -p <file>
Remote Branch löschen
$ git branch -dr <remote/branch> …noch nicht committete lokale
Wer veränderte was & wann in <file> Änderungen behalten
$ git blame <file>
Tags veröffentlichen
$ git reset --keep <commit>
$ git push --tags

30 Tage kostenlose Testversion unter


www.git-tower.com The best Git Client for Mac & Windows
fournova

VERSION CONTROL
BEST PRACTICES

THEMATISCH PASSEND COMMITTEN TESTEN VOR DEM COMMITTEN BRANCHES VERWENDEN


Ein Commit sollte zusammengehörige Ände- Bevor etwas nicht getestet ist, sollte es nicht Einfaches und schnelles Branching war von
rungen sammeln. Z.B. sollte das Beheben von committen werden. Risiken und Nebenwir- Anfang an eine zentrale Anforderung an Git.
zwei unterschiedlichen Bugs in zwei getrenn- kungen sollte man ausführlich testen, um Und tatsächlich sind Branches eines der bes-
ten Commits passieren. Kleine Commits hel- sicherzustellen, dass das Feature wirklich ten Features in Git: sie sind das perfekte Tool,
fen anderen Entwicklern, die Änderungen zu sauber abgeschlossen ist. Vor allem bevor um verschiedene Kontexte im Entwicklungs-
verstehen und sie ggf. rückgängig zu machen man die eigenen Änderungen mit Teamkol- alltag sauber getrennt zu halten.
falls etwas fehlschlug. legen teilt, sollte man sicher sein, keinen Moderne Workflows sollten Branches intensiv
Mit Tools wie der Staging Area und der Mög- halbgaren Code committet zu haben. nutzen: für neue Features, Bugfixes, Ideen
lichkeit, einzelne Teile einer geänderten Datei oder Experimente.
zu stagen, lassen sich in Git sehr einfach
granulare Commits erstellen.

HÄUFIG COMMITTEN GUTE COMMIT MESSAGES EINHEITLICHER WORKFLOW


Oft zu committen hilft dabei, die einzelnen Eine Commit-Message sollte mit einer kurzen Git ermöglicht die verschiedensten Work-
Commits klein und thematisch passend zu Zusammenfassung der Änderungen begin- flows: langlebige Branches, themenbasierte
halten. Zusätzlich können dadurch die Ände- nen (nicht länger als 50 Zeichen). Nach einer Branches, Merge oder Rebase, git-flow, ...
rungen öfter veröffentlicht werden. Dadurch Leerzeile sollten dann folgende Fragen durch Wofür man sich entscheidet, hängt von
wird es für alle im Team einfacher, Änderun- die Message beantwortet werden: verschiedenen Faktoren ab: dem Projekt, den
gen regelmäßig zu integrieren und Merge- ›› Was war der Grund für die Änderung? generellen Entwicklungs- und Deployment-
Konflikte zu vermeiden. Workflows und (vielleicht am wichtigsten)
›› Wie unterscheidet sie sich von der früheren
Wenn man hingegen wenige große Commits auch von den persönlichen Präferenzen und
Implementierung?
nur selten veröffentlicht, sind Konflikte vor- denen des Teams. Aber egal, für welche Ar-
programmiert. Mit Imperativ und Gegenwartsform («change» beitsweise man sich entscheidet, gilt immer:
anstatt «changed» oder «changes») bleibt alle Teammitglieder sollten sich auf einen
man konform mit automatisch generierten gemeinsamen Workflow einigen und ihn
Messages wie z.B. nach «git merge». einhalten.

NICHTS HALBFERTIGES COMMITTEN VERSIONSKONTROLLE IST KEIN HILFE & DOKUMENTATION


Man sollte nur fertigen Code committen. Das
BACKUP SYSTEM Hilfe auf der Kommandozeile
bedeutet nicht, dass man wochenlang nicht Ein schöner Nebeneffekt der Versionskont- $ git help <command>
committen sollte, bis ein großes Feature fer- rolle ist, dass man ein Backup seiner Files auf
tig ist. Vielmehr sollte die Implementierung in einem Remote-Server hat. Dennoch sollte
logische Häppchen aufgeteilt und committet man sein VCS nicht benutzen als sei es ein KOSTENLOSE INFOS IM WEB
werden. Allerdings sollte man nicht commit- Backup-System.
ten, nur um vor dem Feierabend noch etwas http://www.git-tower.com/learn
Bei der Versionskontrolle sollte man darauf http://rogerdudler.github.io/git-guide/
im Repo zu haben.
achten, thematisch passende Änderungen
Auch muss man nicht committen, nur um http://www.git-scm.org/
zusammenzufassen (s.o.) - und nicht einfach
eine saubere Working Copy zu bekommen nur irgendwelche Dateistände zusammen
(um einen Branch zu wechseln etc.). Hierfür zu würfeln.
ist der «Stash» in Git ideal.

30 Tage kostenlose Testversion unter


www.git-tower.com The best Git Client for Mac & Windows

Das könnte Ihnen auch gefallen