Git fusion correctif à plusieurs branches

J'ai été d'essayer d'envelopper ma tête autour de git modèles de ramifications. J'ai été à la recherche à http://nvie.com/posts/a-successful-git-branching-model/ pour quelques idées et à venir de la Subversion seule chose dont j'étais vraiment impatient de a été de faire un changement dans un seul lieu et de la fusion de toutes les branches qui en avait besoin. Dans Subversion, nous avons fini par faire beaucoup de copie de code autour de.

Cependant, je ne comprends toujours pas ce complètement. Ici, c'est un type standard de flux de travail que j'ai et il y a toujours des conflits.

# 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

Donc le maître est à 4.0-INSTANTANÉ et la branche est à 3.1-INSTANTANÉ.

Pas je veux créer un correctif sur la branche et le déplacer vers le tronc.

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

Je comprends pourquoi sa passe et c'est logique. Est-il une meilleure manière de faire ceci?

J'ai lu à propos de cherry-pick, qui je l'ai testé et fonctionne:

git checkout v3
git cherry-pick a518b0b75eaf28868
git checkout master
git cherry-pick a518b0b75eaf28868

Toutefois, cela ne semble pas être la "bonne" façon de gérer cela. Des suggestions?

InformationsquelleAutor Chuck M | 2012-05-25