Aktuelle branch-Situation anzeigen und einen neuen Branch testing anlegen:
> git branch -a
* master
passenger/master
> git checkout -b testing
Switched to a new branch "testing"
> git branch -a
master
* testing
passenger/master
Nach Anbringen der Teständerungen am Projekt erfolgt ein
> vi app/views/martians/index.html.erb
> git commit -a -m 'header verändert'
Nun kann man zum master-Branch zurückwechseln:
> git checkout master
Wird jetzt eine Änderung im master gemacht und diese committed, so kann es zu Konflikten kommen (s.u.). Das push aktualisiert hier den Masterbranch auf dem Server und cap deploy führt ein Deployment (hier zus. mit Migration) aus:
> vi app/views/martians/index.html.erb
> git commit -a -m 'Änderung im Master'
> git push passenger
> cap deploy:migrations
Zurück zum testing-Branch und nach einer Änderung wieder zum master, um dann abschließend den testing-Branch in den master zu mergen:
> git checkout testing
> vi app/views/martians/index.html.erb
> git commit -a -m 'Neuer Header'
> git checkout master
> git pull . testing
An dieser Stelle müssen evtl. abschließend Konflikte gelöst werden. Die einschlägigen Dateien wurden mit diff-artigen Zeilen im Text markiert:
<<<<<<< HEAD:app/views/martians/index.html.erb
<% title "[:marsianer wie wir:]" %>
=======
<% title "[:test-marsianer wie wir:]" %>
>>>>>>> d2417ff9278c3b861c45ba1c8d05a56509d9f2b6:app/views/martians/index.html.erb
Nach der Einebnung können die Dateien neu ge-added und ggf. der testing-Branch gelöscht werden:
> git status
app/views/martians/index.html.erb: needs merge
# On branch master
# Changed but not updated:
# (use "git add <file>..." to update what will be committed)
#
# unmerged: app/views/martians/index.html.erb
# modified: app/views/martians/index.html.erb
> git add app/views/martians/index.html.erb
> git commit -a -m 'testing gemergt und konflikt in index.html.erb behoben'
> git branch -d testing
HINWEIS: Falls die lokal angelegten Branches auch auf dem Server getrackt werden sollen, muss man u.a. die .git/config-Datei editieren. Siehe dazu: “git-Branches auf dem Server tracken”