restaurar remota recuperar rama crear git pull git-pull

remota - git restaurar commit



error de extracción de git: error: la referencia remota está en pero se espera (10)

Mensaje completo:

error: Ref refs/remotes/origin/user is at 3636498c2ea7735fdcedc9af5ab3c8689e6abe77 but expected a21359c6cc2097c85775cde6a40105f4bd7100ec From github.com:{github project url} ! a21359c..6273ffc user -> origin/user (unable to update local ref)


Solución permanente

git update-ref -d resolvió mi instancia de este error, por ejemplo

git update-ref -d refs/remotes/origin/user

Tenga en cuenta que esto no afecta el control remoto.

En mi caso, una git fetch posterior recuperó esa rama nuevamente, y seguir git fetches / pulls ya no daba el error "la referencia remota está en lo esperado".

Si eso no funciona, una solución temporal:

Tenga en cuenta también que si no le importa la rama en cuestión (p. Ej., Solo quiere actualizar el maestro, no el origen / usuario), una solución provisional de git pull es buscar y luego fusionar la rama particular que le interesa, por ejemplo

git fetch # may give an error for a particular branch, but other branches will still be successfully fetched git merge origin/master


Ejecuté esto para resolver el problema:

git gc --prune=now


El mismo caso aquí, pero nada sobre los comentarios publicados es correcto en mi caso, solo tengo una rama (principal) y solo uso el sistema de archivos Unix, este error ocurre aleatoriamente cuando ejecuto git fetch --progress --prune origin y branch is ahead o ''origen / maestro''. Nadie puede comprometerse, solo 1 usuario puede hacer push.

NOTA: Tengo un submódulo en el repositorio acme, y acme tiene nuevos cambios en el submódulo (nuevos commits), primero necesito hacer una actualización del submódulo con la actualización del submódulo git.

[2014-07-29 13:58:37] Payload POST received from Bitbucket [2014-07-29 13:58:37] Exec: cd /var/www/html/acme --------------------- [2014-07-29 13:58:37] Updating Git code for all branches [2014-07-29 13:58:37] Exec: /usr/bin/git checkout --force master [2014-07-29 13:58:37] Your branch is ahead of ''origin/master'' by 1 commit. [2014-07-29 13:58:37] (use "git push" to publish your local commits) [2014-07-29 13:58:37] Command returned some errors: [2014-07-29 13:58:37] Already on ''master'' --------------------- [2014-07-29 13:58:37] Exec: /usr/bin/git fetch --progress --prune origin [2014-07-29 13:58:39] Command returned some errors: [2014-07-29 13:58:39] error: Ref refs/remotes/origin/master is at 8213a9906828322a3428f921381bd87f42ec7e2f but expected c8f9c00551dcd0b9386cd9123607843179981c91 [2014-07-29 13:58:39] From bitbucket.org:acme/acme [2014-07-29 13:58:39] ! c8f9c00..8213a99 master -> origin/master (unable to update local ref) --------------------- [2014-07-29 13:58:39] Unable to fetch Git data

Para resolver este problema (en mi caso) simplemente ejecute primero git push si su rama está por delante del origen.


Si está ejecutando git en un sistema de archivos que no distingue entre mayúsculas y minúsculas (Windows u OS X), esto ocurrirá si hay dos ramas con el mismo nombre pero diferente mayúsculas, por ejemplo, user_model_changes y User_model_changes ya que ambas ramas remotas coincidirán con las mismas rastrear ref.

Elimine la rama remota incorrecta (no debe tener ramas que difieran solo por caso) y luego git remote prune origin y todo debería funcionar


Simplemente elimine las carpetas y archivos en ".git / refs / remotos / origen". Funciona cuando no tienes cambios imprevistos


Tuve que quitar mi rama de mi línea de comando en:

.git/refs/remotes/{my remote}/{**my branch**}

y luego haciendo manualmente:

git pull [remote_name] [branch_name]

Pude sacar los cambios.

Nota: estaba usando SourceTree y no pude hacer el pull.


Un restablecimiento completo también resolverá el problema

git reset --hard origin/master


git for-each-ref --format = ''eliminar% (refname)'' refs / original | git update-ref --stdin git reflog expire --expire = ahora --todo git gc --prune = ahora


intente esto, esto funciona para mí en terminal git remoto ciruela origen


Pasos más claros

  1. en la terminal

    cd /.git/refs/remotes/origin

  2. si ls , verás algunas ramas y HEAD

  3. Eliminar la rama que crees que tiene el problema

    rm branchname

  4. Si no funcionó, elimine todas las ramas / HEAD

    • puedes wana tirar

Espero que funcione ahora.