2008-12-29 9 views
9

Uno de mis compañeros de trabajo tiene un problema al empujar los cambios de git en su máquina. Si inicia sesión en otra máquina, que puede empujar muy bien - pero de su máquina, cuando se trata de empujar obtiene el siguiente errorGit: no se puede presionar desde una computadora

 
    D:\Projects\test1\best-practices>git push 
    Counting objects: 4, done. 
    Compressing objects: 100% (2/2), done. 
    Writing objects: 100% (3/3), 273 bytes, done. 
    Total 3 (delta 1), reused 0 (delta 0) 
    error: unable to create temporary sha1 filename ./objects/42: Permission denied 

    fatal: failed to write object 
    error: unpack failed: unpacker exited with error code 
    To //civ3s012/gitrepos/best-practices/.git 
    ! [remote rejected] master -> master (n/a (unpacker error)) 
    error: failed to push some refs to '//civ3s012/gitrepos/best-practices/.git' 

El servidor es una máquina de las ventanas, como es el cliente. Nadie más tiene este problema, parece ser un problema de permisos del servidor, pero lo hemos descartado por lo que sabemos. Además, el hecho de que pueda iniciar sesión en una máquina diferente y presionar, usando el mismo nombre de usuario, hace que parezca que no se trata de permisos de servidor. ¿Alguna idea de lo que podría estar yendo mal aquí?

+1

Los problemas de permisos fueron los que me dieron este error. – Kzqai

Respuesta

6

no soy un usuario de Windows, así que estoy puñaladas en la oscuridad un poco aquí. Parece que el sistema de archivos remoto está montado y simplemente está presionando para eso (sin usar ssh: // o git: //). ¿Es eso FS de alguna manera montado de manera solo? ¿Puede crear/modificar archivos allí (fuera de git)?

+0

Mi error es 'error de descompilación remota: no se puede crear el directorio temporal de objetos en // /repository/tutorial3.git'. Sí, uso mi propia máquina Win7. Tu respuesta me ayuda. Una vez que cambio el 'Permiso de compartir' de la carpeta del repositorio (agregue 'Cambiar' al lado de 'leer'), puedo presionar. Gracias. – user3454439

0

Tal vez ha creado una rama en su repo local que ya existe en el servidor y que ref no se puede actualizar porque fue creado por otra persona?

+0

Acaba de comenzar a trabajar en este proyecto y no ha creado ramas explícitamente. –

3

Sé que esto es el fácil peasy administrador de sistemas de purga respuesta, pero ¿ha verificado que su disco duro no está lleno?

+0

Sí, me ha pasado lo suficiente como para comprobarlo la mayor parte del tiempo. –

5

Trate de añadir esta variable de configuración al repositorio remoto:

$ git config core.sharedRepository "all" 
$ git config receive.denyNonFastForwards True 

Estos se fijan generalmente por la opción de --shared en git init, cuando el repositorio está configurado.

no sé cómo interactúan los permisos de Windows, así que no estoy seguro de que esta es la solución. Pero sé que a veces un usuario de Linux puede crear archivos con permisos que fallan en un control remoto de Git exactamente de esta manera. Sucedió cuando pertenecen al grupo correcto pero no lo tienen como su grupo primario. Al configurar el intercambio de repositorio en all se soluciona esto.

Esto parece suceder con repositorios compartidos importados desde SVN o CVS.

+0

Esto no solucionó el problema para nosotros, y como nota al margen, este repositorio no se importó desde SVN o CVS, se inició desde git. Gracias sin embargo. –

0

Otra respuesta muerte cerebral. ¿Seguro que tienes permisos para leer esos archivos? Me ha sucedido algunas veces en las que haré un cambio como otro usuario por error. Luego, más tarde, no puedo empujar. Chown es tu amigo.

2

El problema terminó siendo una contraseña almacenada para esa acción que permitió el acceso de lectura, pero no acceso de escritura. Incluso cuando montamos explícitamente el disco con el nombre de usuario y la contraseña apropiados, la contraseña almacenada debe haberse utilizado en segundo plano, lo que dificultó su localización. Para borrar la contraseña, fuimos al Panel de control, Cuentas de usuario, hicimos clic en Avanzado, Administrar contraseñas y eliminamos la información de inicio de sesión para el servidor en cuestión. Después de eso, todo funcionó como debería. Estoy aceptando la respuesta de Pat Notz, ya que terminó siendo un FS de solo lectura. ¡Gracias!

+0

¡Gracias por publicar los detalles del problema de raíz y la solución! –

+0

Estoy de acuerdo. Oh, y Ick! No sé si alguna vez hubiera pensado en verificar eso. –

Cuestiones relacionadas