Branches
alle vorhandenen Branches anzeigen:
git branch
einen neuen branch anlegen:
git branch <branch name>
zu einem branch wechseln:
git checkout <branch name>
shortut: einen neuen branch anlegen und direkt dort hinwechseln:
git checkout -b <branch name>
Git log: graphies Darstellen der branches sowie aller vorhandener branches
git log --oneline --graph --branches
Git merge: fast forward
git merge <merge>
genannten Branch mit dem aktuellen branch zusammenführen “mergen”: fast-forward merge
git checkout master
git merge feature
Nach dem Mergen den feature branch löschen!
git branch -d feature
Zusatz:
verhindern, dass ein fast-forward-merge durchgeführt wird, es wird immer eine commit-merge durchgeführt
git merge --no-ff
erzwingt einen fast-forward-merge
git merge --ff-only
→ einfach die Historie nachzuvollziehen
→ wenn kein Fast-forward-merge möglich ist, erstellt git einen merge-commit
3-Way Merge
Nach dem Mergen den feature branch löschen!
git branch -d feature
Merge Konflikte - Änderungen die nicht automatisch gemerged werden können
z.B. gleiche Zeile die geändert wurde
→ manuell behebe in Datei (Markierungen)
nur three-way-merge: jedes feature wird in einem branch entwickelt
→ einfach zu sehen welches feature entwickelt wurde
Git rebase, z.B.: mit “master”
baut die commit-historie basierend auf einem anderen branch auf
→ Fast-forward merge möglich
git rebase <branch>
(Konflikte manuell beheben, danach markieren)
git add/rm
und rebase fortsetzen
git rebase —continue
Git tag: releases markieren
einen neuen Tag für Version x.y erstellen:
git tag -a v<x.y>
alle bestehenden Tags anzeigen
git tag
bestimmten commit nachträglich taggen
git tag -a v<x.y> <hash>