En la fusión de mis cambios contra un maestro de aguas arriba, que con frecuencia se encuentran a mí mismo haciendo lo siguiente:sobrescritura y empujando una rama Git
git checkout somefeature
git checkout -b integration
git rebase master # resolving conflicts along the way
git checkout somefeature
git merge integration # or rebase, doesn't matter in this example
a menudo a encontrar que la fusión de la rama de integración de nuevo en mi rama de la característica no hacer a algunos conflictos. La primera pregunta que tengo es, "¿por qué sucede esto si mi rama de integración es descendiente de alguna característica y ya resolví conflictos contra el maestro de nivel superior?"
Si se pregunta por qué estoy usando una rama de integración para empezar, es para evitar contaminar mi rama actual con una fusión a medio fracasar.
Mi solución actual es hacer esto:
git checkout integration
git branch -f somefeature # overwrite the branch
El problema ahora es que no puedo empujar mis cambios de nuevo a una rama remota:
git push origin somefeature
! [rejected] somefeature -> somefeature (non-fast forward)
Así que ahora tengo que quitar la rama remota y volver a presionar mis cambios. Esta no puede ser la forma óptima de hacerlo, así que me pregunto, "¿cuál es la mejor manera de sobrescribir una rama y enviar los cambios a una sucursal remota?"
Tenga en cuenta que nunca debe cambiar las confirmaciones ya publicadas, ya que otras personas que trabajan con usted se encontrarán con los mismos problemas que usted, que ya han duplicado las confirmaciones incompatibles en su repositorio. Reasignar está bien siempre y cuando sea solo local, pero volver a establecer las bases y volver a publicarlas es malo; de ahí el error * "rechazado" * de Git (es inteligente y advierte que probablemente estés haciendo algo mal). – poke
Ah, estaba usando fusionar para la conveniencia de la resolución de conflictos paso a paso sin considerar que los commits no serían descendientes de la rama somefeature. Aceptar esto como la verdadera respuesta a mi pregunta. ¡Muchas gracias! – tmountain