Tengo dos ramas de características (privadas) en las que estoy trabajando.
a -- b -- c <-- Master
\ \
\ d -- e <-- Branch1
\
f -- g <-- Branch2
Después de trabajar un poco en estas ramas, descubrí que necesito los cambios de Branch2 en Branch1. Me gustaría volver a basar los cambios en Branch2 en Branch1. Me gustaría terminar con lo siguiente:
a -- b -- c <-- Master
\
d -- e -- f -- g <-- Branch1
Estoy bastante seguro de que necesito volver a crear la segunda rama en la primera, pero no estoy completamente seguro de la sintaxis correcta y de la rama que debería haber verificado.
¿Producirá este comando el resultado deseado?
(Branch1)$ git rebase --onto Branch1 Branch2
git
git-rebase
feature-branch
Arjen
fuente
fuente
git rebase -
. vea mi respuesta a continuaciónRespuestas:
Cambiar a Branch2
Aplique los cambios actuales (Branch2) sobre los cambios de Branch1, permaneciendo en Branch2:
Lo que te dejaría con el resultado deseado en Branch2:
Puedes eliminar Branch1.
fuente
git rebase
mientras permanecía en Branch1 reescribirá el historial de Branch1 para tener los cambios de Branch1 además de los copiados de Branch2. Que dará lugar a la siguiente cometer orden,a - b - f - g - c' - d' - e'
.Nota: si estaba encendido
Branch1
, con Git 2.0 (Q2 2014) podrá escribir:Ver commit 4f40740 por Brian Gesiak
modocache
:rebase
: permitir "-
" abreviatura para la rama anteriorfuente
Sé que pediste a Rebase, pero en su lugar elegiría Cherry los commits que quería mover de Branch2 a Branch1. De esa manera, no necesitaría preocuparme sobre qué rama se creó a partir del maestro, y tendría más control sobre la fusión.
fuente