Soy bastante nuevo en git
usarlo actualmente para administrar nuestro código en un entorno de equipo. Tuve algunos problemas de rebase y los arreglé usando
git checkout --ours filename.txt
git add filename.txt
git rebase --continue
Ahora deseo presionar mis cambios y, por lo tanto, ejecuto el siguiente comando
$ git push origin feature/my_feature_branch
me da el siguiente error:
To ssh://[email protected]:7999/repo/myproject.git
! [rejected] feature/my_feature_branch -> feature/my_feature_branch (non-fast-forward)
error: failed to push some refs to 'ssh://[email protected]:7999/repo/myproject.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Merge the remote changes (e.g. 'git pull')
hint: before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
¿Qué puedo hacer para eliminar el error?
PD: Estoy evitando usar la --force
opción tanto como sea posible.
Respuestas:
Parece que alguien empujó nuevas confirmaciones entre tu última
git fetch
ygit push
. En este caso, debe repetir los pasos y reajustarmy_feature_branch
una vez más.Después de la
git fetch
recomiendo examinar la situación congitk --all
.fuente
Probablemente no obtuviste los cambios remotos antes de la rebase o alguien empujó nuevos cambios (mientras estabas rebasando e intentando empujar). Pruebe estos pasos:
fuente
¡Tuve este problema! Intenté: git fetch + git merge, ¡pero no lo resolví! Intenté: git pull, y tampoco resolví
Luego probé esto y resolví mi problema (es similar a la respuesta del ingeniero):
fuente
Tuve un problema similar y lo resolví con:
git pull origin
fuente
Llego tarde a la fiesta, pero encontré algunas instrucciones útiles en la página de ayuda de github y quería compartirlas aquí.
A veces, Git no puede realizar cambios en un repositorio remoto sin perder las confirmaciones. Cuando esto sucede, su empujón es rechazado.
Si otra persona ha pasado a la misma rama que usted, Git no podrá enviar sus cambios:
Puede solucionar esto obteniendo y fusionando los cambios realizados en la rama remota con los cambios que ha realizado localmente:
O simplemente puede usar
git pull
para ejecutar ambos comandos a la vez:fuente
prueba este comando
$ git push -f -u origin <name of branch>
es decir
$ git push -f -u origin master
fuente
Escribir bloqueo en el repositorio local compartido
Tuve este problema y ninguno de los consejos anteriores me ayudó. Pude recuperar todo correctamente. Pero el empujón siempre fallaba. Era un repositorio local ubicado en el directorio de Windows con varios clientes trabajando con él a través del controlador de carpeta compartida VMWare. Parecía que uno de los sistemas bloqueaba el repositorio de Git para escritura. Después de detener el sistema VMWare relevante, lo que provocó el bloqueo, todo se reparó de inmediato. Era casi imposible averiguar qué sistema causaba el error, así que tuve que detenerlos uno por uno hasta que tuviera éxito.
fuente
Bueno, utilicé el consejo aquí y me jodió, ya que fusionó mi código local directamente con el maestro. .... así que tómalo todo con un grano de sal. Mi compañero de trabajo dijo que lo siguiente ayudó a resolver el problema, necesitaba volver a asignar mi sucursal.
fuente
En Eclipse, haga lo siguiente:
Repositorios GIT> Remotos> Origen> Haga clic derecho y diga buscar
Repositorios GIT> Seguimiento remoto> Seleccione su rama y diga fusionar
Vaya al proyecto, haga clic con el botón derecho en su archivo y diga Obtener desde el origen.
fuente
fuente
Aquí hay otra solución para resolver este problema.
fuente
fuente