Tengo dos ramas email
y staging
. staging
es el último y ya no necesito los viejos cambios en la email
rama, pero no quiero eliminarlos.
Así que sólo quiero volcar todo el contenido de staging
a email
fin de que ambos apuntan a la misma se comprometen. ¿Es eso posible?
Respuestas:
Puede usar la estrategia de fusión 'nuestra':
fuente
;
al final de cada comando? Lo hice sin el;
y parece estar funcionando. Además, esta respuesta está incompleta, el tercer paso es verificar la antigua rama (correo electrónico) y luego fusionarla con la puesta en escena nuevamente.git rebase -s theirs <oldbranc> <newbranch>
funciona bien (no importa en qué rama se encuentre). Tenga en cuenta que en rebase 'suyo' es en realidad la nueva rama porque 'nuestro' es la cabeza a la que estamos aplicando los commits.Si solo desea que las dos ramas 'correo electrónico' y 'puesta en escena' sean las mismas, puede etiquetar la rama 'correo electrónico', luego restablecer la rama 'correo electrónico' a la 'puesta en escena':
También puede cambiar la base de la rama 'provisional' en la rama 'correo electrónico'. Pero el resultado contendrá la modificación de las dos ramas.
fuente
git checkout
,git check
no existe, que yo sepaemail
la cabeza de la rama solo debe apuntar a la misma cabezastaging
y ambas tendrán las mismas confirmaciones, el mismo historial.He visto varias respuestas y ese es el único procedimiento que me permite solucionarlo sin ningún conflicto.
Si desea todos los cambios de branch_new en branch_old, entonces:
una vez aplicados esos cuatro comandos, puede presionar el branch_old sin ningún problema
fuente
Las otras respuestas me dieron las pistas correctas, pero no ayudaron por completo.
Esto es lo que funcionó para mí:
Sin el cuarto paso de fusionarse con nuestra estrategia, el impulso se considera una actualización que no avanza rápidamente y será rechazado (por GitHub).
fuente
merge -m 'This is not my beautiful house.' -s ours origin/email
.Si eres como yo y no quieres lidiar con la fusión, puedes hacer los pasos anteriores, excepto usar la fuerza en lugar de la fusión, porque creará un rastro de papel de registro que distrae:
Nota: Esto es solo si REALMENTE nunca desea volver a ver las cosas en el correo electrónico.
fuente
Quería fusionar dos ramas para que todos los contenidos
old_branch
se actualicen con los contenidos denew_branch
Para mí esto funcionó a las mil maravillas:
fuente
Qué tal si:
fuente
Otras respuestas parecían incompletas.
He intentado a continuación en su totalidad, y funcionó bien.
NOTA:
1. Haga una copia de su repositorio antes de intentar a continuación, para estar seguro.
Detalles:
1. Todo el desarrollo ocurre en la rama de desarrollo
2. La rama de qa es la misma copia del desarrollo
3. De vez en cuando, el código de desarrollo debe moverse / sobrescribirse a la rama de qa
entonces necesitamos sobrescribir una rama qa, desde la rama dev
Parte 1:
con los siguientes comandos, el antiguo qa se ha actualizado a un nuevo desarrollador:
El comentario automático para el último empuje da a continuación:
Este comentario parece inverso, porque la secuencia anterior también parece inversa
Parte 2:
A continuación se muestran nuevos compromisos locales inesperados en desarrollo, los innecesarios,
por lo que debemos descartarlos y hacer que los desarrolladores no se vean afectados.
Parte 3:
Verifique que todo esté como se esperaba:
Eso es todo.
1. el qa antiguo ahora se sobrescribe con el nuevo código de sucursal del desarrollador
2. local está limpio (el origen / dev remoto no se ha modificado)
fuente
La forma más fácil de hacerlo:
Ahora la rama de correo electrónico y la puesta en escena son las mismas.
fuente
email
rama. Es como eliminar laemail
rama y crearla de nuevo en la cabecera de lastaging
rama.fuente
Este no altera la rama más nueva original, y le da la oportunidad de realizar más modificaciones antes de la confirmación final.
fuente