Branching und merging mit git 0

Posted by fwoeck
on Wednesday, October 08

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”

Comments

Leave a response

Comment