Branches
Ein Branch ist eine Referenz auf einen bestimmten Commit. In einem neuen Repository existiert standardmäßig eine solche Referenz master:
$ git branch -v # Branches mit referenziertem Commit auflisten
* master 068b9b9 the 3rd commit # * = Branch master ist aktiv
Branches erstellen
Neue Branches können jederzeit angelegt werden, z.B. für jedes neue Feature (topic branches) oder Entwicklungslinien (z.B. Wartung, aktuelles Release, nächstes Release). Dabei bleibt der aktuelle Branch aktiv:
$ git branch <branchname> [<start-point>]
$ git branch newfeature # Neuer Branch newfeature
# basierend auf HEAD
$ git branch bugfix 1.0 # Neuer Branch newfeature
# basierend auf 1.0
$ git branch
* master
newfeature
bugfix
Branches wechseln
Der Working Tree und Index wird mit git checkout in einen bestimmten Zustand gebracht (= zu einem Branch wechseln, einen Branch auschecken). Mit -b wird zuvor ein neuer Branch angelegt:
$ git checkout [<branch>]
$ git checkout -b [<branch>]
$ git checkout -b [<branch>] [<start-point>]
$ git checkout newfeature
Commits in einem Branch
Wird ein neuer Commit erstellt, wird dadurch die Referenz des aktuellen Branches auf den soeben erstellten Commit gesetzt:
$ git checkout -b newfeature
$ edit somefile.txt
$ git commit -a -m "api draft"
$ git checkout master
$ edit somefile.txt
$ git commit -a -m "bugfix"
Aufgaben
- Fügen Sie einige Zeilen in die readme.txt ein und committen Sie diese Änderung.
- Erstellen Sie zwei Branches bug1 und bug2 und nehmen Sie in beiden Branches eine Änderung an der exakt selben Stelle in der Datei readme.txt vor.
- Erstellen Sie ein neuen Feature-Branch feature1, der eine andere Stelle in der Datei verändert.