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>