¿Cómo maneja git commits en una fusión?

Tengo problemas para entender cómo funciona una fusión de git en términos de las confirmaciones creadas por el process de fusión. He leído las secciones relevantes en pro git y el libro de la comunidad git, pero todavía estoy confundido.

Considere este escenario: Tengo un repo de git de "origen":

master | a0--a1--a2--a3 \ -b0--b1 | branch2 

Copio este repository a un repository local y luego trabajo solo en el repository local. En branch2, hice un "maestro de combinación git". Ahora mi repository local se ve así:

  master / origin/master | a0--a1--a2--a3 \ \ -b0--b1-----merge | | origin/branch2 | branch2 

Entonces la fusión creó 1 commit, "merge", después de la confirmación "b1". "git log" para branch2 muestra el gráfico esperado:

 > git log branch2 --graph --pretty=oneline --decorate * a7b69fc6759e1dd5463bab379ce101a6ad026c7b (HEAD, branch2) Merge branch 'master' into branch2 |\ | * 482e4026f05e33395a9fc3c87f50a746f692406a (origin/master, origin/HEAD, master) a3 | * 8de57bdea2d316073af3b7055f8c28c56004ce94 a2 | * 1e991047996aad269f2c01b9a0b9a7d8293096a1 a1 * | 99955f66843df51fb9d40c7797156c32cad57415 (origin/branch2) b1 * | 30ca9b6363558322f2bb7810d75cda0d9c2ba3e0 b0 |/ * 76a7c6d0eb54a9580841115ff2c3429360ab2ac9 a0 

Además, si realizo una confirmación antes del encabezado actual, llego al compromiso b1, como se esperaba. (siga la línea branch2 en el gráfico y retroceda 1 commit)

 > git log branch2~ --graph --pretty=oneline --decorate * 99955f66843df51fb9d40c7797156c32cad57415 (origin/branch2) b1 * 30ca9b6363558322f2bb7810d75cda0d9c2ba3e0 b0 * 76a7c6d0eb54a9580841115ff2c3429360ab2ac9 a0 

Aquí viene mi confusión. Todavía no he llevado mis cambios al origen, pero cuando hago un "estado de git", git dice que mi branch2 local está por delante del origen / branch2 por 4 commits. Pensé que la fusión solo dio como resultado 1 nueva confirmación de "combinación", como se ve en el gráfico / diagtwigs anterior. ¿Por qué 4?

 > git status # On branch branch2 # Your branch is ahead of 'origin/branch2' by 4 commits. # nothing to commit (working directory clean) 

Además, al hacer un "logging de git" desde el origen / twig2 a la twig2, se muestran los 4 commits en lugar del 1 que esperaba (pasando de "b1" a "merge").

 > git log origin/branch2..branch2 --graph --pretty=oneline --decorate * a7b69fc6759e1dd5463bab379ce101a6ad026c7b (HEAD, branch2) Merge branch 'master' into branch2 * 482e4026f05e33395a9fc3c87f50a746f692406a (origin/master, origin/HEAD, master) a3 * 8de57bdea2d316073af3b7055f8c28c56004ce94 a2 * 1e991047996aad269f2c01b9a0b9a7d8293096a1 a1 

Entiendo que los 4 commits son los 3 de master (a1, a2, a3) que se supone que la fusión traerá a la twig 2, más la confirmación "merge". Pero, ¿por qué el gráfico no lo muestra de esa manera? Si lo hace, se vería así:

  master / origin/master | a0--a1--a2--a3----------- \ \ -b0--b1--a1'--a2'--a3'--merge | | origin/branch2 | branch2 

Y branch2 ~ me llevaría a a3 'en vez de b1.

Gracias de antemano por cualquier ayuda.

Como se menciona en " Cómo get los cambios en una twig en git ":

 git log origin/branch2..branch2 

significa: todas las confirmaciones en branch2 (reference positiva) que no están en origin/branch2 (reference negativa)
(En las references positivas y negativas, vea " Diferencia en ' git log origin/master ' versus ' git log origin/master.. ' ")

En su caso, después de la fusión, tiene 4 commits en branch2 (el local) que no están en origin/branch2 : a1 , a2 , a3 y merge .