¿Hay alguna forma de reajustar una única confirmación de una rama a otra rama?
Tengo esta estructura de rama:
-- -- -- -- -- (Master)
\
-- -- -- -- -- XX (Feature-branch)
Todo lo que quiero hacer es volver a basar la última confirmación Feature-branch
en master y deshacer Feature-branch
una confirmación.
-- -- -- -- -- XX (Master)
\
-- -- -- -- -- (Feature-branch)
¿Cómo puedo hacer eso?
Respuestas:
Puede elegir XX para dominar.
Y elimine la última confirmación de la rama de características con git reset.
fuente
cherry-pick
hizo aparecer como si se hubieran eliminado de la ubicación anterior y se hayan creado en la nueva ubicación. Supongo que rebase se habría encargado de eso, pero a estas alturas he empujado corriente arriba, así que no puedo probar eso. En cualquier caso, tenga cuidado si se encuentra en una situación similar.Feature-branch
al origen, deberá hacerlo,git push -f origin Feature-branch
yaFeature-branch
que ahora se considera que está 1 confirmación detrás deorigin/Feature-branch
.Esto dice "reajustar el rango de confirmaciones entre la última antes de la rama y la rama (es decir, la confirmación XX) en la punta de la rama maestra"
Después de que esta
branch
sugerencia de operación se mueva en la confirmaciónXX
, entonces desea volver a establecerla conQue dice "restablecer la sugerencia de la rama a la confirmación antes de su estado anterior"
Entonces, una selección de cerezas es una solución más simple ...
fuente
--onto
antes, por lo que es posible que esté haciendo algo mal. Por cierto, el OP dijo rebase, pero parece que quiere hacer una selección.En realidad, es bastante sencillo de hacer. La solución es hacer una rebase interactiva y "eliminar" todas las confirmaciones que no desea incluir en la rebase.
git rebase -i <target_branch>
¿Dóndetarget_branch
está la rama en la que desea volver a basarse?Luego editará el archivo que se abre y
pick
las confirmaciones que desea ydrop
(od
para abreviar) todas las confirmaciones que no desea traer.fuente
La respuesta de @Charles es correcta. De todos modos terminé usando esto tantas veces, sobre todo para reajustar una configuración específica en un proyecto
que creo un nuevo comando para ello:
normalmente desea autocompletar los nombres de las ramas para ese comando, así que agréguelo obteniendo esta función (agregando a .bashrc o .profile):
git autocomplete lo buscará
puedes usar este comando así:
Cuando divide las características correctamente, las posibilidades son infinitas.
Supongo que esto es lo que le gusta hacer a la gente de las colchas .
este comando funcionará de todos modos con cualquier sha / ref que proporciones:
fuente
Aquí tienes otra opción:
Los comandos se ven así:
No es un comando de rebase, no, pero es un rebase en espíritu.
fuente