Pregunta

Sé que hay muchas preguntas sobre esto, pero parece que no puedo encontrar la respuesta que estoy buscando en absoluto.

Acabo de fusionar mi sucursal de tareas en mi maestro, y estoy listo para presionar mis cambios a la rama maestra remota.Sin embargo, están mostrando como dos comisiones:

    commit 878c07412aab6a6b06b7fc8dd84c2418cc4f31d8
Merge: 9ffa590 c9f5552
Author: ***
Date:   Mon May 21 16:02:36 2012 +0100

    Merge branch 'modelUpdate4'

    Conflicts:
        ***.xcodeproj/project.pbxproj

commit c9f5552862872673317701c3dffd7fb6b6daa02c
Author: ***
Date:   Mon May 21 15:03:21 2012 +0100

    Modified model according to requests.  Repopulated seeded database.

Esta es la salida del registro de git y los dos comisiones que deseo aplastar como uno.Sin embargo, cuando hago:

git rebase -i HEAD~2

En realidad, solo muestra 4 cometidas previamente comprometidas (y empujadas).¿Estoy malinterpretando cómo se fusionan mis ramas?Si intento y git REBASE -I, esto solo muestra el primer compromiso en la Lista de registro GIT.

¡Gracias!

¿Fue útil?

Solución

Desde que dijiste cuatro confirmaciones ya fueron empujados, supongo que su gráfico (git log --oneline --decorate --graph) se ve algo como esto, donde tienes compromete entre master y modelUpdate4 ya empujado al repositorio remoto de ramificación:

* (master, modelUpdate4, HEAD) Merge branch 'modelUpdate4'
| \
|  * (origin/modelUpdate4) Modified model according to requests. [HEAD^2]
|  |
|  * Another commit on modelUpdate4
|  |
|  * Yet another commit on modelUpdate4!
|  |
*  | (origin/master) Something that conflics with a commit in modelUpdate4 [HEAD~1]
| /
* Previous commit on master [HEAD~2]

HEAD~2 es el primer padre del primer padre, y desde su HEAD es una fusión de modelUpdate4 en master, se refiere a dos confirmaciones en la línea master. HEAD^2 es HEAD's segundo padre, por lo que el commit antes HEAD abajo de la línea modelUpdate4. (Véase también: http://paulboxley.com/blog/2011/06 / git-caret-y-tilde )

Si HEAD~2 es su nueva base, obtendrá todas las confirmaciones entre HEAD~2 y master en una línea recta. Usted también tendrá que lidiar con el conflicto rama en el modelUpdate4 cometer donde pasa.

* (master, HEAD) Merge branch 'modelUpdate4'
|
* Modified model according to requests.  Repopulated seeded database.
|
* Another commit on modelUpdate4
|
* Yet another commit on modelUpdate4!
|
* Something on master that conflics with modelUpdate4
|
* Previous commit on master

Si alguien más está usando esas sucursales remotas, o si desea mantener su historial de ramificación, no rebase. Se va a reescribir la historia que ya está en el repositorio remoto, que sólo va a ser un dolor de cabeza para todos los demás. Empuje el compromiso de fusión y serás dorado.

Como alternativa, podría rebasar directamente sobre origin/master. origin/modelUpdate4 terminaría en el quinto pino Git, pero ya que es una rama tarea apuesto a que sólo ibas a eliminar todos modos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top