remote origin example ejemplo git git-pull

origin - git pull remote branch



git pull falla "no se puede resolver la referencia" "no se puede actualizar la referencia local" (25)

Usando git 1.6.4.2, cuando hago un git pull recibo este error:

error: unable to resolve reference refs/remotes/origin/LT558-optimize-sql: No such file or directory From git+ssh://remoteserver/~/misk5 ! [new branch] LT558-optimize-sql -> origin/LT558-optimize-sql (unable to update local ref) error: unable to resolve reference refs/remotes/origin/split-css: No such file or directory ! [new branch] split-css -> origin/split-css (unable to update local ref)

He intentado remote prune origin git, pero no sirvió de nada.


Anotar un caso específico que pueda causar este problema.

Un día presioné una rama llamada "feature / subfeature", mientras tenía la rama "feature" en el control remoto.

Esa operación funcionó bien sin ningún error de mi parte, pero cuando mis compañeros buscaron y / o extrajeron cualquier rama, todos tenían exactamente el mismo mensaje de error al unable to update local ref , cannot lock ref ''refs/remotes/origin/feature/subfeature .

Esto se resolvió eliminando la rama de la feature en el control remoto ( git push --delete origin feature ) y luego ejecutando git remote prune origin en el repositorio de mis compañeros de trabajo, lo que generó mensajes que incluyen el * [pruned] origin/feature .

Por lo tanto, supongo que git fetch estaba tratando de crear la referencia de subfeature en la carpeta de feature en git internamente (.git / ...), pero la creación de la carpeta falló porque ya había feature referencia a la feature .


Ejecuta los siguientes comandos:

rm .git/refs/remotes/origin/master git fetch git branch --set-upstream-to=origin/master

Por si acaso, si necesita saber qué es .git/refs/remotes/origin/master , debería leer la sección Remotes en Referencias de Git .


En mi caso, el problema se resolvió después de haber eliminado todos los archivos de referencia de eliminación en el directorio .git .

Si observa el mensaje, le dirá qué archivos necesita eliminar (específicamente).

Los archivos a eliminar se encuentran bajo .git/refs/remotes .

Acabo de eliminar todos los archivos y ejecuté gc prune

git gc --prune=now

Después de eso, todo funciona bien.


Enfrentó el mismo problema cuando se eliminó el repositorio y se creó con el mismo nombre. Funcionó solo cuando restablecí la URL remota como se muestra a continuación;

git remoto set-url origin [GIT_REPO_URL]

Verifique la url remota:

git remote -v

Ahora, todos los comandos deberían funcionar como de costumbre.


Estaba recibiendo este error una vez ejecutando git fetch:

error: no se puede bloquear ref ''refs / remotes / origin / branchname'': ref refs / remotes / origin / featureEmailTemplate está en 45c5f2ab ... pero se esperaba d48af9 ... desde Home ... (no se puede actualizar ref local)

El siguiente comando solucionó el problema:

git gc --prun = ahora


Esto hizo el trabajo por mí:

git gc --prune=now


Intenta limpiar tu repositorio local con:

$ git gc --prune=now $ git remote prune origin

man git-gc (1):

git-gc - Cleanup unnecessary files and optimize the local repository git gc [--aggressive] [--auto] [--quiet] [--prune=<date> | --no-prune] Runs a number of housekeeping tasks within the current repository, such as compressing file revisions (to reduce disk space and increase performance) and removing unreachable objects which may have been created from prior invocations of git add. Users are encouraged to run this task on a regular basis within each repository to maintain good disk space utilization and good operating performance.

man git-remote (1):

git-remote - manage set of tracked repositories git remote prune [-n | --dry-run] <name> Deletes all stale remote-tracking branches under <name>. These stale branches have already been removed from the remote repository referenced by <name>, but are still locally available in "remotes/<name>".


Me pasó a mí también. En mi caso, el árbitro malo fue maestro, e hice lo siguiente:

rm .git/refs/remotes/origin/master git fetch

Esto hizo que git restaurara el archivo ref. Después de eso todo volvió a funcionar como se esperaba.


Para mí, funcionó para eliminar los archivos que están arrojando errores de la carpeta .git/refs/remotes/origin/ .


Para mí, tenía una rama local llamada feature/phase2 y la rama remota se llamaba feature/phase2/data-model . El conflicto de nombres fue la causa del problema, por lo que eliminé mi sucursal local (podría cambiarle el nombre si tuviera algo que mantener)


Para responder a esto de manera muy breve, este problema surge cuando su local tiene cierta información sobre el control remoto y alguien cambia algo que hace que el control remoto y sus cambios no sean sincronizados.

Estaba teniendo este problema porque alguien ha eliminado una rama remota y ha creado otra vez con el mismo nombre.

Para hacer frente a estos problemas, realice una extracción o recuperación desde el control remoto.

git remote prune origin

o si está utilizando alguna GUI, realice una búsqueda desde el control remoto.


Prueba esto:

git pull origin Branch_Name

Branch_Name , la rama en la que estás actualmente.

Si solo haces un git pull , también extrae el resto del nombre de la rama creada.

Así que es la razón por la que está recibiendo esto:

! [new branch] split-css -> origin/split-css (unable to update local ref)


Pude trabajar con

git remote update --prune


Se produjo este problema al intentar clonar desde un archivo creado en git bundle , ninguna de las otras respuestas funcionó porque no pude clonar el repositorio (por lo que git gc y eliminar / editar archivos estaban fuera de la cuestión).

Sin embargo, había otra forma de solucionarlo: el archivo de origen de un archivo .bundle con:

# v2 git bundle 9a3184e2f983ba13cc7f40a820df8dd8cf20b54d HEAD 9a3184e2f983ba13cc7f40a820df8dd8cf20b54d refs/heads/master 9a3184e2f983ba13cc7f40a820df8dd8cf20b54d refs/heads/master PACK.......p..x...Kj.0...: (and so on...)

Simplemente eliminando la cuarta línea con vim se solucionó el problema.


Si git gc --prune=now no te ayuda. (mala suerte como yo)

Lo que hice fue eliminar el proyecto en local y volver a clonar todo el proyecto nuevamente.


Solo encontré el problema hoy.

Método de solución de problemas: con SourceTree en los servidores de Windows, puede intentar ejecutarlo como administrador. Eso soluciona mi problema de "no se puede actualizar la referencia local" en Atlassian Source Tree 2.1.2.5 en un Windows Server 2012 R2 en el dominio.

Si también puede replicar esta situación, se demuestra que el problema está causado por un problema de permiso. Es mejor profundizar y encontrar la causa raíz, probablemente algunos archivos en particular son propiedad de otros usuarios y, de lo contrario, hay un efecto secundario no deseado: tendrá que ejecutar SourceTree como Administrador por el resto de la eternidad.


Solo me gustaría añadir cómo puede suceder que se rompa una referencia.

Posible causa raíz

En mi sistema (Windows 7 de 64 bits), cuando ocurre un BSOD , algunos de los archivos de referencia almacenados (lo más probable es que estén abiertos / escritos actualmente cuando ocurrió BSOD) se sobrescriben con caracteres NULL (ASCII 0).

Como han mencionado otros, para solucionarlo, es suficiente simplemente eliminar esos archivos de referencia no válidos y volver a buscar o volver a extraer el repositorio.

Ejemplo

Error: cannot lock ref ''refs/remotes/origin/some/branch'': unable to resolve reference ''refs/remotes/origin/some/branch'': reference broken

Solución: elimine el archivo %repo_root%/.git/refs/remotes/origin/some/branch


Tenía el mismo msg pero con un directorio, obtuvo un msg fallido al tirar.

git --prone tampoco me ayudó. Resulta que había un archivo con el mismo nombre que un directorio creado de forma remota.

Tuvo que ir a .git / logs / refs / remotes / origin y borrar el archivo de configuración regional; luego, tire de nuevo, todo está bien.


Tuve el mismo problema con la actualización del compositor. Pero para mí, solo funcionó después de borrar la memoria caché del compositor y después de eliminar el contenido de la carpeta del proveedor:

rm -rf vendor/* git gc --prune=now git pull composer clear-cache composer update my/package


Tuve el mismo problema. sigo los siguientes pasos

1) cambiar su rama que tiene problema a otra rama

2) eliminar esa rama

3) pago de nuevo.

Nota: - Puede guardar los cambios no confirmados y volver a colocarlos.


Tuve este mismo problema y lo resolví yendo al archivo en el que estaba cometiendo el error:

/repo/.git/refs/remotes/origin/master

Este archivo estaba lleno de nulos, lo reemplacé con la última referencia de github.


Tuve este problema al utilizar SourceTree. Intenté tirar de nuevo y funcionó. Creo que estaba hechizando ramas (checkout) demasiado rápido :).

Mi situación es un poco diferente a la del póster porque mi repositorio ha sido relativamente cooperativo, sin ninguna corrupción aparente.


git fetch --prune corrigió este error para mí:

[marc.zych@marc-desktop] - [~/code/driving] - [Wed May 10, 02:58:25] [I]> git fetch error: cannot lock ref ''refs/remotes/origin/user/janek/integration/20170505'': ''refs/remotes/origin/user/janek/integration'' exists; cannot create ''refs/remotes/origin/user/janek/integration/20170505'' From github.com:zooxco/driving ! [new branch] user/janek/integration/20170505 -> origin/user/janek/integration/20170505 (unable to update local ref) From github.com:zooxco/driving [marc.zych@marc-desktop] - [~/code/driving] - [Wed May 10, 02:58:30] [I]> git fetch --prune - [deleted] (none) -> origin/user/janek/integration

Sin embargo, esto supone que la rama ofensiva se eliminó en el control remoto.


git prune origin y eso hizo el trabajo.


# remove the reference file of the branch "lost" rm -fv ./.git/refs/remotes/origin/feature/v1.6.9-api-token-bot-reader # get all the branches from the master git fetch --all # git will "know" how-to handle the issue from now on # From github.com:futurice/senzoit-www-server # * [new branch] feature/v1.6.9-api-token-bot-reader -> # origin/feature/v1.6.9-api-token-bot-reader # and push your local changes git push