5

我希望能够通过将我的工作桌面上存在的 git 存储库克隆到我的笔记本电脑来在家工作。两个系统都在 cygwin shell 中运行 msysgit。两个系统都使用 cygwin 的 ssh。

如果我 ssh 到该服务器,我可以在路径 /cygdrive/d/Projects/TheProject 看到存储库

$ ssh TheDesktop
MyUser@TheDesktop's password: ...I enter the password, see the MOTD, and I'm in...
$ cd /cygdrive/d/Projects/TheProject
...See the git repository here.  Even see the current branch in the prompt...

但我尝试克隆,但失败了:

$ git clone ssh://TheDesktop/cygdrive/d/Projects/TheProject
Cloning into TheProject
MyUser@TheDesktop's password: ...I enter the password...
fatal: '/cygdrive/d/Projects/TheProject' does not appear to be a git repository
fatal: The remote end hung up unexpectedly

我还尝试将存储库符号链接到我的主文件夹:

$ ssh TheDesktop
MyUser@TheDesktop's password: ...I enter the password...
$ ln -s /cygdrive/d/Projects/TheProject .
$ exit

$ git clone ssh://TheDesktop/~/TheProject
Cloning into TheProject
MyUser@TheDesktop's password: ...I enter the password...
fatal: '/cygdrive/d/Projects/TheProject' does not appear to be a git repository
fatal: The remote end hung up unexpectedly   

我当然在这里的很多问题中都看到了这个错误,它们几乎总是与错误的路径有关。但我真的很确定我的道路是正确的。我觉得它与桌面上 ssh 进入的环境有关,但我真的不知道是什么。还有哪些其他因素可能导致此错误?

4

3 回答 3

4
git clone TheDesktop:cygdrive/d/Projects/TheProject TheProject

应该修复它

如果 ssh 服务器不在 cygwin 下,请替换 windows 路径:

cygpath --mixed /cygdrive/d/Projects/TheProject

根据我的经验,cygwin 将错误的路径样式传递给 msysgit。Msysgit 不理解 /cygdrive 并因此将其弄乱,除了命令行上的单个参数,在这种情况下 cygwin bash 似乎神奇地进行了转换。

但是,对于 gitshell 而不是 cygwin sshd 来说,没有这样的事情。我假设你尝试了一些接近

git clone TheDesktop:D:/Projects/TheProject TheProject

如果这不起作用,我会看看

git daemon # wasn't supported on Windows last time I checked

或者

git bundle create repo.bundle --all

# receive it on the remote
scp TheDesktop:repo.bundle
git clone repo.bundle TheProject
于 2011-04-20T15:32:03.323 回答
1

您需要克隆存储库本身,而不是关联的工作树:

$ git clone ssh://TheDesktop/cygdrive/d/Projects/TheProject/.git TheProject

应该管用

于 2011-04-20T14:16:57.520 回答
0

这可能与 git 想要找到相对于您的登录文件夹的“cygdrive/d/Projects/TheProject”有关。

在您的第一个示例中,您通过 ssh 登录,然后执行“cd /cygdrive/...”,这是一个绝对路径,而不是相对路径。

将您的 ssh 登录文件夹更改为指向例如 Projects 文件夹可能会对您有所帮助。并且还缩短了您的 ssh 路径:)

于 2011-04-20T15:30:08.413 回答