Git Workflow, Nvie Branching Model Adelante y Detrás

Siguiendo el model de ramificación de git de Nvie, ¿por qué termino con 'desarrollar' y 'maestro' cada 1 adelante y 1 detrás del otro después de fusionar la misma twig de 'liberación' en ambos? Si la misma twig de 'liberación' se fusiona en cada uno, no debe dominar y desarrollar de acuerdo?

x 84a628d (origin/develop, develop) Merge branch 'release-v3.0.1' into develop |\ | | x 2e4d60b (HEAD, v3.0.1, origin/master, master) Merge branch 'release-v3.0.1' | | |\ | | |/ | |/| | x | 716ce96 (release-v3.0.1) Version 3.0.1 |/ / x | fe3b54d Some more more code x | 3683892 Some more code x | 8c0b835 'develop' branch code |/ x d051b54 (v3.0) Baseline merge. Merge remote-tracking branch 'origin/master' 

$ git log origin / master ^ origin / develop

 commit 2e4d60b7d6760b4f6b2328ab06150b020b0d279f Merge: d051b54 716ce96 Author: Todd Date: Tue Mar 26 11:27:59 2013 -0400 Merge branch 'release-v3.0.1' 

$ git log origen / desarrollo ^ origen / maestro

 commit 84a628d96653ed196faa6387c8b208badf23aa75 Merge: fe3b54d 716ce96 Author: Todd Date: Tue Mar 26 11:31:53 2013 -0400 Merge branch 'release-v3.0.1' into develop 

¿Qué me estoy perdiendo?

 git log origin/master ^origin/develop 

Este command muestra todas las confirmaciones accesibles desde el origin/master pero no desde el origin/develop

 git log origin/develop ^origin/master 

Este command muestra todas las confirmaciones accesibles desde el origin/develop pero no desde el origin/master

La salida de estos dos commands anteriores parece ser consistente con el gráfico que has mostrado.

Si tiene la intención de averiguar la diferencia en el contenido de las 2 twigs, debe usar el command git diff lugar.

 git diff origin/master..origin/develop 

Si solo desea la list de files que son diferentes, puede usar la opción --name-status :

 git diff --name-status origin/master..origin/develop 

En git, el SHA1 de un compromiso se calcula en function del SHA1 del compromiso principal, el post de compromiso, las marcas de time y gran cantidad de dicha información. Aunque ha fusionado la misma twig release-v3.0.1 tanto en master como en develop , lo ha hecho como 2 fusiones independientes en 2 instantes de time diferentes. Esto obviamente no produciría el mismo compromiso SHA1 para ambos.

Lo que debería haber hecho en su lugar es uno de los siguientes:

Opción 1:

 git checkout master: git merge release-v3.0.1 git checkout develop: git merge master git checkout master # This would be a fast-forward merge git merge develop 

Opcion 2:

 git checkout develop: git merge release-v3.0.1 git checkout master: git merge develop git checkout develop # This would be a fast-forward merge) git merge master 

De esta forma, terminarías con twigs master y de develop apuntando al mismo compromiso.

Podrías llegar al mismo estado incluso ahora combinando master en develop o al revés, y haciendo una fusión de avance rápido en la otra twig.

 git checkout master git merge develop git checkout develop # This would be a fast-forward merge git merge master