Cómo dejar de Git a través de ssh en las ventanas de resolver el camino equivocado?
Pregunta
Tengo una caja de ventanas 2003 con una configuración del servidor SSH. Tengo msysgit (GIT versión 1.6.2) instalado localmente y en el servidor.
El servidor tiene la siguiente ruta de acceso absoluta a mis repos:
e:\vc\git\myrepo.git
cuando un usuario inicia sesión en él / ella serán puestos en el directorio de trabajo siguiente:
e:\vc\git\
Al ejecutar el siguiente cmd en mi máquina dev:
git clone ssh://myuser@myip/myrepo.git testrepo
Me sale el siguiente error:
fatal: ''/myrepo.git'' does not appear to be a git repository
De acuerdo con los registros de mi ssh parece que se está ejecutando git este cmd en el servidor:
'cmd.exe /c git-upload-pack '/myrepo.git''
La ejecución de ese comando a nivel local (en el servidor) no por la misma razón. Estoy pensando en el problema está relacionado con GIT anteponiendo el camino con un '/'. ¿Cómo le digo git no hacer esto? Si esto se trabaja?
Nota: git-carga-pack está funcionando porque añadí \ gitinstallpath \ libexec \ git-core a la ruta. Al parecer, este es un error y se corregirá en el futuro, este era mi trabajo alrededor.
Solución
resolví esto cambiando mi servidor ssh desde winssh a OpenSSH (a través de la capa de cygwin). Pude conectar muy bien (como se señaló anteriormente) usando WinSSHD, pero estaba WinSSHD caminos con el prefijo "/" no manejar correctamente. Probablemente podría conseguir WinSSHD a trabajar, pero el cambio a cygwin y openssh era más rápido.
Aquí hay un buena entrada en el blog para poner en marcha la instalación, si estás en una situación similar:
Otros consejos
¿Has probado el siguiente?
git clone ssh://myuser@myip/myrepo testrepo
Tenga en cuenta la eliminación de ".git" desde el final de la ruta SSH. Sólo es necesario que el sufijo al final si el nombre del directorio remoto tiene la misma.
Además, ¿ha tratado de cualquier otro formato de URL SSH? Para utilizar una ruta relativa, que puede probar:
git clone ssh://myuser@myip/~/myrepo testrepo
Vea la href="http://git-scm.com/docs/git-clone" rel="nofollow noreferrer"> git clone hombre página
Si alguien sigue interesado en la solución:
El problema es - cmd.exe no entiende parámetros entre comillas simples. Así que usan sh lugar.
Crea gup.sh archivo con la línea
git-upload-pack.exe $*
y grp.sh con
git-receive-pack.exe $*
en el servidor
A continuación, ejecute:
git clone -u 'sh gup.sh' ssh://myuser@myip/e/vc/git/myrepo.git testrepo git config remote.origin.uploadpack 'sh gup.sh' git config remote.origin.receivepack 'sh grp.sh'