Initialisierung
- git init project1
- git remote add origin https://github.com/pecabo/project1
Konfiguration
- git config –global <parameter> value
- git config –local <parameter> value
Parameter [values] sind
- user.name
- user.email
- core.autocrlf [input|true]
- color.ui [auto]
Staging
- git add <file> | -a] | –all
- git commit
Diffs
- git diff –staged (Diff Commit <-> Staging Area)
- git diff HEAD (Diff Working <-> Staging <-> Commit)
- git diff –color-words
- git diff –word-diff
- git diff -stat (Dateien anzeigen)
Logging
- git log –graph –all –decorate –oneline
- git log –stat
- git log –patch –online
- git log -M<99> –follow (=> nach Umbenennungen, M: % für Gleichheit)
- git log –stat — <dir/file>
Löschen
- git rm [–cachend] <file>
- git add-u (=> nach os.rm)
Verschieben
- git mv <file>
- git rm + git add (=> nach os.rm)
- git add -A
Ignorieren
.gitignore gilt für aktuelles Directory und allen Subdirs. Mögliche Einträge sind
- # Kommentar
- ! Aufheben einer generellen Regel
- a*, *.log
- tmp/
Anzeige aller ignorierten Dateien mittels
- git ls-files –others -i –exclude-standard
Branching
Erzeugen
- git branch newBranch
- git checkout -b newBranch
Löschen
- git branch -d newBranch (muss gemerged sein)
- git branch -D newBranch (auch ungemerged)
Wechseln
- git checkout branchname
- git checkout commID (=> detached Head, kein Commit)
Merge
- git checkout master => git merge
- Eventuell git Status für Konflikte
- Pro Konflikt >>>> HEAD (=master) ==== <<<<<< Branch
- git merge –abort
- git merge –squash (Merge ohne Historie)
Netzwerk
Koppeln
- git remote add <Name(origin)> https://<hub-url> (=> Branches: origin/master, origin/branch1, …)
- git remote set-url <Name(origin)> https://<hub-url>
Anzeigen aller Branches
- git remote -v
- git branch -r
Löschen
- git remote rm origin
Austausch
- git fetch origin
- git pull origin (=> fetch + merge)
- git push origin (alle Branches)
Dateien recovern
- git checkout — Dateiname (letzter Commit überschreibt aktuelle Datei)
Reset und Rebase
Zusammenfassen von Commits. Soft muss commited werden, hard fasst im Repository zusammen. ~n ist Anzahl der letzten Commits
- git reset [mixed | soft | hard]
- mixed – Default
- git reset HEAD
- git reset –hard HEAD~5
- git reset –soft HEAD~5
Rebase ist das Anfügen eines Braches in anderen (den Master-)Zweig . Die Commithistorie wird aufgeräumt
- git checkout b1
- git rebase master
- git log –oneline
Tagging
Nach Wechsel auf Branch
- git tag v1.0
- git tag -a v1.1 -m „Anderer Name“
Anzeigen
- git show tagname
- git tag -l v1*
Pushen
- git push origin v1.0
- git push –tags
Löschen
- git push origin -d v1.0
- git push origin –delete v1.0
Ausschecken
- git checkout -b release1 v1.0
- Taggen alter Commits
- git tag tagname commitID