En lugar de unir B (Rama) a A (Característica), fusioné A (Función) a B (Rama) en GIT LAB. Aquí hay una representación gráfica de lo que hice. Tengo esto como a continuación. Con esto, la "Branch A2"
fusiona con la "feature B2"
que no es lo que pretendía. PROBLEMA: ahora si continúo el desarrollo, la sucursal que tendrá que continuar es "feature B2"
lugar de "Branch A2"
Branch A ----A1------ A2 <-- last commit \ \ (merge into feature) Branch(feature) B -- -B1- - -- B2 <-- feature now contains Branch "A2" edits.
Esto es lo que yo quería. Combinar "feature B2"
en "Branch A2"
; De esta forma, cuando continúe con mi desarrollo, estaría en la "Branch A2"
y no en la "feature B2"
Branch(feature) B ----B1------ B2 <-- last feature commit \ \ (merge into Branch) Branch A -- -A1- - -- A2 <-- Branch now contains "B2" feature edits.
¿Cuál es la forma más limpia de solucionar esto para poder get el Escenario 2 y continuar trabajando en la twig de la Sucursal "A2"
lugar de la twig de la característica "B2"
? En lo que respecta a la function, ambos logran lo mismo si fusionaste A2-> B2 o B2-> A2.
Una forma de pensar es que puedo cambiar el nombre de la twig fusionada y llamarla twig A2
Asumiendo que sus cambios no fueron empujados aguas arriba, creo que
git checkout feature git reset B1 --hard git checkout branch git merge feature
debería hacer, donde B1 es la confirmación antes de la fusión.
Una forma de pensar es que puedo cambiar el nombre de la twig fusionada y llamarla twig A2
Cuando esté "hecho" con la function de todos modos, esa podría ser la solución más limpia en su caso.
git branch -d branch branch-tmp # Delete branch git branch -m feature branch # Rename feature into branch
Debería poder revertir a la confirmación antes de la fusión en su twig (consulte ¿Cómo revertir el repository de Git a una confirmación previa? ) Y luego vuelva a realizar la fusión en la dirección correcta.
Solo para el beneficio de otros que puedan pisar este hilo, aquí está mi discurso. Nota: Todas las manipulaciones se realizaron en ** Local Repo
aunque puede hacerlo en ** remote Repo
en Git Lab
. Una vez que la fusión se completó como se muestra en el diagtwig 1 en el hilo original:
git branch <branch name eg Branch A>
git checkout <branch name eg Branch A>
. Ahora su nueva sucursal prestada y su sucursal B serían esencialmente las mismas ya que no hay cambios de código desde la última fusión de sucursales. git push origin --delete <your remote branch name eg feature A>
y siga con git branch -d <your local branch name eg feature A>
git branch --list
y luego git branch -a
. No te preocupes por el historial, incluso si eliminas estas twigs, ya que cuando presionas tus compromisos la próxima vez mostrará que hubo una combinación de código y tu twig más reciente, Branch A
, tendrá todos tus cambios justo al fusionar la sucursal. Funciona casi como pointers en lenguaje C. El nombre de la variable ha desaparecido, pero ya que copió el puntero a otro nombre, la dirección de su cambio sigue intacta.