tutorial stackoverflow example git push rebase

stackoverflow - Git push rechazó "no rápido avance"



git rebase tutorial (8)

Bloqueo de escritura en el repositorio local compartido

Tuve este problema y ninguno de los consejos anteriores me ayudó. Pude recuperar todo correctamente Pero el empuje siempre falló. Era un repositorio local ubicado en el directorio de Windows con varios clientes que trabajan con él a través del controlador de carpeta compartida VMWare. Parecía que uno de los sistemas bloqueaba el repositorio de Git para escribir. Después de detener el sistema VMWare relevante, lo que causó el bloqueo todo reparado de inmediato. Era casi imposible saber qué sistema causaba el error, así que tuve que detenerlos uno por uno hasta que tuvieron éxito.

Soy bastante nuevo en git pero lo estoy usando para administrar nuestro código en un entorno de equipo. Tuve algunos problemas de rebase y los solucioné usando

git checkout --ours filename.txt git add filename.txt git rebase --continue

Ahora deseo impulsar mis cambios y ejecutar 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 deshacerme del error?

PD: estoy evitando usar la opción --force tanto como sea posible.


¡Tuve este problema! Intenté: git fetch + git merge, ¡pero no lo resolví! Intenté: git pull, y tampoco lo resolví

Luego probé esto y resolví mi problema (es similar a la respuesta de Engineer):

git fetch origin master:tmp git rebase tmp git push origin HEAD:master git branch -D tmp


Bueno, usé el consejo aquí y me fastidió 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 marcar mi sucursal.

git branch --set-upstream-to=origin/feature/my-current-branch feature/my-current-branch


En Eclipse, haga lo siguiente:

Repositorios GIT> Controles remotos> Origen> Haga clic derecho y diga buscar

Repositorios GIT> Seguimiento remoto> Seleccione su rama y diga fusión

Vaya a proyecto, haga clic derecho en su archivo y diga Fetch desde el inicio.


Parece que alguien presionó nuevos commits entre tu último git fetch y git push . En este caso, debe repetir sus pasos y volver a my_feature_branch base de my_feature_branch una vez más.

git fetch git rebase feature/my_feature_branch git push origin feature/my_feature_branch

Después de la git fetch recomiendo examinar la situación con gitk --all .


Probablemente no buscó los cambios remotos antes de la rebase o alguien presionó nuevos cambios (mientras estaba reorganizando e intentando presionar). Pruebe estos pasos:

#fetching remote ''feature/my_feature_branch'' branch to the ''tmp'' local branch git fetch origin feature/my_feature_branch:tmp #rebasing on local ''tmp'' branch git rebase tmp #pushing local changes to the remote git push origin HEAD:feature/my_feature_branch #removing temporary created ''tmp'' branch git branch -D tmp


Tuve un problema similar y lo resolví con: git pull origen


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 compromisos. Cuando esto sucede, su impulso es rechazado.

Si otra persona se ha desplazado a la misma sucursal que usted, Git no podrá impulsar sus cambios:

$ git push origin master To https://github.com/USERNAME/REPOSITORY.git ! [rejected] master -> master (non-fast-forward) error: failed to push some refs to ''https://github.com/USERNAME/REPOSITORY.git'' 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.

Puede solucionar esto obteniendo y fusionando los cambios realizados en la sucursal remota con los cambios que ha realizado localmente:

$ git fetch origin # Fetches updates made to an online repository $ git merge origin YOUR_BRANCH_NAME # Merges updates made online with your local work

O bien, simplemente puede usar git pull para ejecutar ambos comandos a la vez:

$ git pull origin YOUR_BRANCH_NAME # Grabs online updates and merges them with your local work