Git推/拉路径不适用于运行msysgit+cygwin sshd的windows原点



为了解决我遇到的问题:使用git在windows上管理网站,我在windows 2008服务器上安装了Cygwin openssh和git for windows(msysgit)(让我们称之为myserver)。

我在cygwin路径/var/git/example.git上有一个裸git repo设置,它在Windows上映射到c:cygwinvargitexample.git

我有一个用户git,他对repo的文件夹具有权限。

我可以使用Putty从XP工作站使用基于密钥的身份验证登录gitmyserver。我在选美比赛中打开了钥匙。

我能够在Putty中使用cygwin样式的路径,因此例如cd /var/git/example.git可以让我使用裸repo。

然而,当我使用Git Bash(MingW32)并尝试执行以下操作时,我遇到了一个问题:

git clone ssh://git@myserver/var/git/example.git

我得到的回复是:

Cloning into example...
fatal: '/var/git/example.git' does not appear to be a git repository
fatal: The remote end hung up unexpectedly

当我尝试时:

git clone ssh://git@myserver:c:/cygwin/var/git/example.git

它起作用,回购被克隆。

Cloning into example...
remote: Counting objects: 384, done.
remote: Compressing objects: 100% (288/288), done.
remote: Total 384 (delta 85), reused 359 (delta 73)
Receiving objects: 100% (384/384), 51.72 MiB | 201 KiB/s, done.
Resolving deltas: 100% (85/85), done.

然而,如果我尝试使用进行推送

cd example
git push

失败:

git: '/cygwin/var/git/example.git' is not a git command. See 'git --help'.
fatal: The remote end hung up unexpectedly

那么,我该如何让它发挥作用,以便推/拉/克隆呢?理想情况下,我希望能够使用Cygwin路径样式,例如git clone ssh://git@myserver/var/git/example.git

如果这个问题得到解决,我不知道,但我终于成功地让它发挥了作用,并在另一个线程上分享了我的答案:

https://stackoverflow.com/a/10509588

我最近遇到过类似的问题,cygwin-git无法正常工作。我安装了msysgit。然后,为了让事情正常工作,我需要从msysgit shell中完成所有的git工作。根据我的经验,大多数事情都是在dos外壳下进行的,但推送则不然。我建议重新开始,使用msysgit bash shell克隆一个新的repo,并将该shell用于所有git命令,然后推送可能会起作用。

我也遇到了这个问题,因为我正在运行Putty、WinSCP、TortoiseSVN和TortoiseGIT,它们之间有一个共享的盛会。

我通过将GIT_SSH从Putty\prink.exe更改为TortoiseSVN\bin\TortoisePlink.exe来解决此问题例如

set GIT_SSH=C:Program FilesTortoiseSVNbinTortoisePlink.exe

最新更新