El repository local de Git no existe después del clon exitoso de cygwin bash

Cuando clono en el directory (que no existe) al que se hace reference a través de la ruta absoluta, git no se queja de nada, informa 0 código de salida pero el directory no se crea. Git cumple el directory si existe cuando bash:

user@host /tmp $ git clone https://github.com/zandev/shunit2.git /tmp/shunit01 Cloning into '/tmp/shunit01'... remote: Counting objects: 1219, done. emote: Total 1219 (delta 0), reused 0 (delta 0), pack-reused 1219 Receiving objects: 100% (1219/1219), 308.20 KiB | 0 bytes/s, done. Resolving deltas: 100% (657/657), done. Checking connectivity... done. user@host /tmp $ echo $? 0 user@host /tmp $ ls /tmp/shunit01 ls: cannot access /tmp/shunit01: No such file or directory user@host /tmp $ git clone https://github.com/zandev/shunit2.git /tmp/shunit01 fatal: destination path '/tmp/shunit01' already exists and is not an empty directory. user@host /tmp $ echo $? 128 

Los directorys no parecen existir cuando se revisan desde cygwin, powershell o la interfaz de usuario de Windows. No he visto ninguna indicación de un error de ningún tipo. El mismo problema se puede observar para la count de administrador.

Puedo clonar el repository correctamente cuando se usa una ruta no absoluta ( shunit02 , o incluso ../tmp/shunit02 ).

Utilizando:

  • Windows 7 Enterprise Ver 6.1 Build 7601 Service Pack 1
  • git 2.5.1.windows.1
  • cygwin 2.3.1-1

EDITAR:

El directory /tmp se ve como C:\cygwin64\tmp por windows. /cygdrive/c /tmp como ejemplo, lo mismo sucede en /cygdrive/c de hecho.

EDICION 2:

Estoy usando Git para Windows. El clon funciona cuando se usa la ruta de viudas para un destino como: git clone https://github.com/zandev/shunit2.git 'C:\cygwin64\tmp\shunit4'

Esto es causado por Git para Windows que no acepta routes de cygwin , por lo tanto, /a/b/c se tradujo a c:\a\b\c . De hecho, ahí es donde se clonan los repositorys y explica por qué fallan los bashs posteriores de clonación. El directory de hecho existe, aunque el destino real es inesperado.

¿Qué funcionará?

  • Utilice bash enviado con Git para Windows y sus convenciones de ruta,
  • Utilice cygwin git que acepte routes cygwin (según se informa, puede haber otros problemas),
  • Use las routes de Windows nativas: git clone https://github.com/zandev/shunit2.git 'C:\cygwin64\tmp\shunit4' ,
  • Use nombres de objective relativos ya que parece funcionar sin problemas.

¿Puedes intentar cambiar el nombre de /tmp existente y volver a crearlo en la carpeta de installation de cygwin como se describe en http://cs.nyu.edu/~yap/prog/cygwin/FAQs.html#tmpfiles :

Sugerencia 1

P: Después de instalar cygwin, y lo inicié, aparece el siguiente post: bash.exe: advertencia: no se pudo encontrar / tmp, ¡por favor crea! bash: / etc / profile: argumento no válido bash: /.bash_profile: argumento no válido

R: Primero necesita crear el directory / tmp. A ssuming your cygwin directory raíz se llama C: / cygwin, lo que significa que primero debe crear el directory C: / cygwin / tmp .

Sugerencia 2

Parece que estás usando Git Bash para el ejecutable git de Windows en Cygwin. Podría valer la pena intentar usar el ejecutable git que proporciona Cygwin.