tutorial gui español descargar commands comandos git

gui - Git y desagradable "error: no se puede bloquear la información existente/refs fatal"



git repository (12)

Actualizar:

Es posible que necesite editar su archivo ~ / .netrc:

https://bugs.launchpad.net/ubuntu/+source/git-core/+bug/293553

Respuesta original:

¿Por qué inhabilitaste ssl? Creo que esto podría tener que ver con que no puedas presionar a través de https. Lo volvería a intentar e intentaré presionar de nuevo:

git config –global http.sslVerify true

Después de clonar desde el repositorio remoto de git (en bettercodes) hice algunos cambios, me comprometí y traté de impulsar:

git push origin master

Errores con:

error: no se puede bloquear la información existente / refs
fatal: git-http-push falló

Este caso se refiere al repositorio ya existente.

Lo que hice antes, fue:

  1. git config –global http.sslVerify false
  2. git init
  3. git remote add [url]
  4. git clone
  5. cambiar los datos
  6. git commit

En ''bettercodes'' no tengo acceso al registro de git.

Estoy usando Windows. El error detallado fue:

C:/MyWorkStuff/Projects/Ruby/MyProject/>git push origin master Unable to create branch path https://user:[email protected]/myproject/info/ error: cannot lock existing info/refs fatal: git-http-push failed

Cloné antes, luego cambié el código y me comprometí.


Así es como funciona para mí.

  1. busque el archivo de bloqueo de Apache DAV en su servidor (por ejemplo, / var / lock / apache2 / DAVlock)
  2. bórralo
  3. recrearlo con permisos de escritura para el servidor web
  4. reiniciar el servidor web

Una alternativa aún más rápida:

  1. busque el archivo de bloqueo de Apache DAV en su servidor (por ejemplo, / var / lock / apache2 / DAVlock)
  2. Vacía el archivo: cat /dev/null > /var/lock/apache2/DAVlock
  3. reiniciar el servidor web

En el caso de bettercodes.org, la solución es más poética: el único problema puede estar en los derechos asignados a los miembros del proyecto. ¡Los miembros simples no tienen derechos de escritura! Asegúrese de tener los derechos de Moderador o Administrador. Esto debe establecerse en bettercodes.org en la configuración del proyecto por un administrador, por supuesto.


En mi caso, una rama se movió a un subdirectorio y se llamó al directorio como la rama. Git estaba confundido por eso. Cuando eliminé la rama local (en SourceTree simplemente haciendo clic derecho en eliminar) todo funcionó como de costumbre.


Esto me sucedió cuando mi control remoto git (bitbucket.org) cambió su dirección IP. La solución rápida fue eliminar y volver a agregar el control remoto, luego todo funcionó como se esperaba. Si no está familiarizado con la forma de eliminar y volver a agregar un control remoto en git, estos son los pasos:

  1. Copie la URL de git de SSH de su control remoto existente. Puede imprimirlo al terminal usando este comando:

    git remote -v

que imprimirá algo como esto:

origin [email protected]:account-name/repo-name.git (fetch) origin [email protected]:account-name/repo-name.git (push)

  1. Retire el control remoto de su repositorio git local:

    git remote rm origin

  2. Agregue el control remoto a su repositorio local:

    git remote add origin [email protected]:account-name/repo-name.git


Esto probablemente ya esté resuelto por ahora. Pero aquí está lo que funcionó para mí.

  1. Ubicación:

    • Si el repositorio bloqueado está en el lado del servidor:

      1. ssh a su repositorio git en el servidor.
      2. Inicie sesión como usuario que tiene permisos para modificar el repositorio y navegar al repositorio en su servidor.
    • Si el repositorio bloqueado es local solamente:

      1. Abra la consola de git y navegue hasta el directorio del repositorio.
      2. Ejecute este comando:

        git update-server-info

  2. Repare los permisos en su repositorio (remoto o local) si es necesario. En mi caso tuve que chmod a 777 y chown a apache:apache

  3. Intente volver a presionar desde el repositorio local:

    git push


Esto suena como un problema de permisos: ¿es posible que tenga dos ventanas abiertas, ejecutándose con derechos por separado? Tal vez verificar la propiedad de la carpeta .git.

Tal vez verifique si hay un bloqueo de archivo pendiente pendiente, tal vez use lsof para verificar, o el equivalente para su sistema operativo.


Lo arreglé haciendo lo siguiente

git branch --unset-upstream rm .git/refs/remotes/origin/{branch} git gc --prune=now git branch --set-upstream-to=origin/{branch} {branch} #or git push --set-upstream origin {branch} git pull

Esto suponiendo que sus ramas locales y remotas están alineadas y que usted acaba de obtener el error de refs como no fatal.


Para mí esto funcionó:

git remote prune origin

Como esta respuesta parece ayudar a mucha gente, profundicé un poco en lo que realmente sucede aquí. Lo que esto hará es eliminar las referencias a las sucursales remotas en la carpeta .git/refs/remotes/origin . Por lo tanto, esto no afectará a las sucursales locales y no cambiará nada a distancia, pero actualizará las referencias locales que tiene a las sucursales remotas. Parece que en algunos casos estas referencias pueden contener datos que Git no puede manejar correctamente.



Tuve este problema porque estaba en una sucursal que tenía un nombre similar a una sucursal río arriba. es decir, la rama ascendente se llamaba example-branch y mi rama local se llamaba example-branch/backend . La solución fue cambiar el nombre de mi sucursal local así:

git branch -m <new name goes here>


Verifique que usted (el proceso git en realidad) tenga acceso al archivo .git/info/refs y este archivo no esté bloqueado por otro proceso.