OK, pensé que este era un simple escenario git, ¿qué me estoy perdiendo?
Tengo una master
rama y una feature
rama. Realizo algunos trabajos master
, otros feature
, y luego otros master
. Termino con algo como esto (el orden lexicográfico implica el orden de los commits):
A--B--C------F--G (master)
\
D--E (feature)
No tengo ningún problema para git push origin master
mantener master
actualizado el control remoto , ni con git push origin feature
(cuando está activado feature
) para mantener una copia de seguridad remota para mi feature
trabajo. Hasta ahora, estamos bien.
Pero ahora quiero hacer una nueva base feature
sobre los F--G
commits en master, así que yo git checkout feature
y git rebase master
. Sigue bien. Ahora tenemos:
A--B--C------F--G (master)
\
D'--E' (feature)
Problema: en el momento en que quiero hacer una copia de seguridad de la nueva bifurcación feature
ramificada git push origin feature
, el empuje se rechaza ya que el árbol ha cambiado debido a la rebase. Esto solo se puede resolver con git push --force origin feature
.
Odio usar --force
sin estar seguro de que lo necesito. Entonces, ¿lo necesito? ¿El rebase implica necesariamente que el próximo push
debe ser --force
completo?
Esta rama de características no se comparte con ningún otro desarrollador, por lo que no tengo ningún problema de facto con el empuje de fuerza, no voy a perder ningún dato, la pregunta es más conceptual.