Ich habe versucht, meinen Kopf um Git verzweigende Modelle zu wickeln. Ich habe mir http://nvie.com/posts/a-successful-git-branching-model/ für einige Ideen angeschaut und von Subversion eine Sache, auf die ich mich wirklich gefreut habe, war, an einem einzigen Ort eine Veränderung vorzunehmen und sie mit all den Zweigen zu verschmelzen, die sie brauchten. In Subversion haben wir uns zu viel Code herumgesprochen.Git merkt Hotfix zu mehreren Zweigen
Allerdings bekomme ich das immer noch nicht komplett. Hier ist eine Standard-Art von Workflow, die ich habe und es wird immer zu Konflikten kommen.
# create new version branch
git checkout master
git checkout -b v3
vim pom.xml # change branch version to "3.1-SNAPSHOT"
git commit -a
git checkout master
vim pom.xml # change master version to "4.0-SNAPSHOT"
git commit -a
So ist der Meister bei 4,0-snapshot und die Verzweigung mit 3,1-SNAPSHOT.
Nicht ich möchte einen Hotfix auf dem Zweig erstellen und es in den Stamm verschieben.
git checkout v3
git checkout -b hotfix
vim file.txt # make a bugfix change
git commit -a
git checkout v3
git merge hotfix # this works fine
git checkout master
git merge hotfix # this has a conflict since both branches have changed the version
Ich verstehe, warum es passiert und es Sinn macht. Gibt es einen besseren Weg, dies zu tun?
ich über cherry-pick lesen, die ich getestet und funktioniert:
git checkout v3
git cherry-pick a518b0b75eaf28868
git checkout master
git cherry-pick a518b0b75eaf28868
jedoch, die wie die „richtige“ Art und Weise scheint nicht zu handhaben. Irgendwelche Vorschläge?
Ich stimme zu (obwohl ich denke, dass @ ellotheths Antwort je nach den Umständen eleganter sein kann). Laut Git's [Branching-Philosophie] (http://gitester.livejournal.com/42247.html) sind Sie wirklich sind sagen, dass _this Commit_ ist das einzige, was zu allen Filialen gehört. So sagt "Rosinenpicken" das. –
Danke, ich denke das macht Sinn. Von Subversion kommend, und wie schmerzhaft es manchmal für uns war, Fixes an den Stamm und an Zweige zu schicken (im Grunde genommen zweimal), hatte ich mir gedacht, dass ich Feature-Zweige einfach irgendwo zusammenführen könnte, wo ich will. Als das nicht wie erwartet funktionierte, war ich irgendwie enttäuscht. "cherry-pick" macht aber sehr viel Sinn. Ich muss nur einen Prozess entwickeln, der für alle Entwickler einfach zu verstehen ist, und ich denke, dass dies deutlich gemacht werden kann. –