Estoy usando un repositorio intermedio de Git para duplicar un repositorio SVN remoto, desde el cual las personas pueden clonar y trabajar. El repositorio intermedio tiene su rama principal reestablecida todas las noches desde el SVN ascendente, y estamos trabajando en ramas de características. Por ejemplo:Reubicación de sucursales remotas en Git
remote:
master
local:
master
feature
puedo empujar éxito mi rama de la característica para el mando a distancia, y terminar con lo que espero:
remote:
master
feature
local:
master
feature
que luego re-configuración de la rama para hacer un seguimiento del mando a distancia:
remote:
master
feature
local:
master
feature -> origin/feature
Y todo está bien. Lo que me gustaría hacer desde aquí es volver a establecer la base de la rama de características en la rama principal en el control remoto, pero me gustaría hacer esto desde mi máquina local. Me gustaría poder hacer:
git checkout master
git pull
git checkout feature
git rebase master
git push origin feature
Para mantener la rama de funciones remotas actualizada con el maestro remoto. Sin embargo, este método hace que Git se quejan:
To <remote>
! [rejected] feature -> feature (non-fast-forward)
error: failed to push some refs to '<remote>'
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes (e.g. 'git pull') before pushing again. See the
'Note about fast-forwards' section of 'git push --help' for details.
git pull
hace el truco pero causa una combinación de cometer que me gustaría evitar. Me preocupa que el mensaje indique feature -> feature
en lugar de feature -> origin/feature
, pero esto puede ser solo una cuestión de presentación.
¿Me estoy perdiendo algo, o voy por esto de una manera completamente incorrecta? No es crítico evitar hacer la rebase en el servidor remoto, pero hace que arreglar cualquier conflicto de fusión desde la base de datos sea mucho más difícil.
Tuve el mismo problema. Quería comenzar un modelo de rebase de sucursales ([como este] (http://bit.ly/23T1I7f)). Entonces noté que cometí un error: ** Si desea volver a establecer la base (No debe enviar los cambios a la función remota antes de volver a la base de datos en el maestro) ** Por lo tanto, debe ingresar algún código a su función. Y ahora desea presionarlo para su función remota. Antes de hacer esto: . Deberías buscar y extraer a tu maestro si es necesario. -Debería volver a establecer la base en el maestro si ha habido algunos cambios en el maestro que no tiene en su función. Ahora puede presionar la función y no habrá ningún problema. – Markus