Sólo para un archivo, recibo el siguiente error:

error: unable to write sha1 filename /opt/www/.git/objects/3f/ce3587c54a8be14c69b08c6b01f94949b11b47: Permission denied

error: wp/wp-admin/css/theme-install.dev.css: failed to insert into database
fatal: unable to index file wp/wp-admin/css/theme-install.dev.css

He comprobado mi permisos en el archivo en cuestión, el .git objetos de directorio en cuestión, y .git sí mismo. Me pueden agregar otros archivos excepto de esta. Yo podría stat/r/w/touch el archivo, y tocar no son de ayuda. El permisos son los correctos.

Es esta locura de error?

  • Puede usted touch nuevos archivos en .../objects/3f, o si no, ¿cuál es su modo? ¿.../objects/3f/ce3... Ya existen, y si es así, ¿cuál es su modo? Podría la partición donde /opt vida plena?
  • Tocar es buena, y el archivo no existe.
  • también me pasó a mí en este caso : tener un archivo llamado «imafile» > la eliminación de este archivo > crear un directorio llamado «imafile» > poner los archivos en = no se puede confirmar debido a que «no se puede encontrar el índice»
InformationsquelleAutor h4xnoodle | 2011-06-19

6 Comentarios

  1. 14

    Mirando el código fuente de Git (sha1_file.c, la función move_temp_to_file()) se ve como Git es no cambiar el nombre de un archivo temporal llamado /opt/www/.git/objects/3f/tmp_obj_XXXXXX (donde XXXXXX es de seis caracteres aleatorios) para /opt/www/.git/objects/3f/ce3587c54a8be14c69b08c6b01f94949b11b47. Esto puede suceder si usted no tiene permiso para eliminar archivos en /opt/www/.git/objects/3f.

    Algunas cosas para probar:

    • Si varios usuarios acceden al repositorio de Git, puede que tenga que ejecutar algo como git config core.sharedRepository 0664 (ver git help config para más detalles) para asegurar que el recién creado los directorios y los archivos tienen los permisos adecuados para todos los usuarios del repositorio.
    • Intente ejecutar rm -f /opt/www/.git/objects/3f/tmp_obj_* y ver si eso hace que el problema desaparezca.
    • Ver si se puede reproducir el problema fuera de Git haciendo lo siguiente:

      mkdir -p /opt/www/.git/objects/3f
      cd /opt/www/.git/objects/3f
      rm -f tmp_obj_* ce3587c54a8be14c69b08c6b01f94949b11b47
      echo "testing" >tmp_obj_abcdefg
      mv tmp_obj_abcdef ce3587c54a8be14c69b08c6b01f94949b11b47
      rm -f tmp_obj_abcdefg
      

      Asegúrese de ejecutar los comandos anteriores el mismo usuario con el que experimentó el error.

    • Tratar de forma recursiva chowning y chmodción de los objetos de directorio.
    • Por una razón desconocida, de hecho había algunos objetos propios de la raíz.
  2. 51

    Si está utilizando visual studio o algo similar que está generando el archivo mdf, simplemente cierre VS & reintentar su git comando de nuevo. Este tiempo se debe trabajar.

    Para guardar constantemente cierre & reapertura, se debe añadir referencias en .gitignore archivo en la raíz del proyecto. Por ejemplo, si se trata de una base de datos causando el problema, agregue la siguiente:

    # SQL Server files
    *.mdf
    *.ldf
    
    • el hombre, mi amigo
    • Esto funcionó para mí. Yo estaba teniendo el problema al intentar cometer un proyecto de Unidad con VS abierta. Cerrado y el error se fue.
    • Esto es muy frustrante, porque esto significa que no puedo usar Team Explorer para administrar mi código. Tengo que hacer los cambios necesarios en Visual Studioo, cerrar la aplicación, confirmar mis cambios, abrir la aplicación y reanudar el trabajo. Debe haber una forma de evitar esto.
    • Klicker, poner cualquier archivo de la causa en el ignore archivo como he sugerido con *.mdf, etc arriba. Que va a hacer el truco.
  3. 5

    Usted no tiene permiso para escribir en /opt/www/.git/objects/3f.

    La solución más rápida es utilizar el sudo comando a ejecutar el comando con privilegios de root.

    sudo <Your git command>

    Resuelto para mí.

    • trabajó para mí… creo que lo causó, en mi caso fue a abortar a mitad de camino a través de una anterior cometer
  4. 3

    Acaba de cerrar el Visual Studio (o Unidad) y vuelva a agregar los archivos de nuevo.

    • He cerrado el servidor nodeJs donde mi angularJs aplicación se ejecuta y el índice fue desbloqueado.
    • que funciona, pero supongamos que tengo 4 proyectos abiertos en un momento de tiempo, yo no puedo cerrar todos los cuatro de ellos sólo para agregar archivos a git. No hay ninguna otra solución que no requiere de cierre ?
  5. 1

    Algo ha ido mal en el repositorio de git probablemente causado por un proceso externo, la creación de un archivo o directorio que es propiedad de un usuario que el usuario actual.

    Este error es común cuando se utiliza ventana acoplable, y un servicio en la ventana acoplable-componer.yml archivo tiene montados localmente volumen que se creó con un usuario diferente a la de la máquina local del usuario.

    Si esta es la primera vez que esta se ha producido un error, ejecute el siguiente en el directorio de trabajo para cambiar la propiedad de los archivos y carpetas de nuevo al iniciar sesión en el usuario:

    sudo chown -R ${USER}:${USER} .
    

    Si esta no es la primera vez que se han encontrado con este problema, es decir, que ya se han comprometido y empujó a los archivos y carpetas que son propiedad de otro usuario, luego el de arriba solo no va a rectificar la situación, así como de ejecutar el comando anterior, deberá llevar a cabo las siguientes instrucciones.

    Por lejos, la mejor solución es ejecutar el comando siguiente desde la raíz del directorio del proyecto que contiene el repositorio de git:

    sudo chown -R ${USER}:${USER} .git/objects
    

    Para comprobar que todo está solucionado, ejecute el siguiente:

    git add .
    

    Seguido rápidamente por la ejecución de:

    git status
    

    Verás que todo se ha añadido el repositorio git, sin necesidad de prueba /el violín alrededor con nada más.

  6. 0

    Yo tenía este problema en mi desnudo origen repositorio cuando los permisos de root:git 770, al parecer he tenido que cambiar a 771, a pesar de que mi usuario es en el git grupo. Sospecho que tal vez git es tal vez no acl-consciente, o no tan compatible con grupos secundarios, como el git grupo fue uno de mis grupos secundarios, en este caso.

Dejar respuesta

Please enter your comment!
Please enter your name here