使用用户名,路径和不同驱动器

时间:2016-07-28 13:52:13

标签: git ssh

我有3台Windows 7专业机器。其中两个设置为安装了Git的开发机器(一台台式机和一台笔记本电脑)。第三个是安装了Git的文件服务器,另外它也作为ssh服务器运行。

我一直在指的是YouTube链接Creating a Git Server on a Windows OS,我已经成功地达到了16:15分钟。总结到视频中我已经在所有3台机器上安装了Git,在文件服务器上安装了Bitvise SSH Server,在服务器上创建了一个--bare Git存储库,然后尝试克隆'远程(文件服务器)存储库到桌面文件夹。

我的问题是,如果“用户名”中有空格,您如何表达Git命令?和'路径'到服务器上的回购?此外,服务器上的存储库不在C:驱动器上。它在D:驱动器上。这会使事情变得复杂吗?

这不仅仅是在局域网上使用ssh的练习。我将使用它来访问(拉动和推送)来自台式机和笔记本电脑的回购,同时在局域网和笔记本电脑在外出时以及在需要时关闭(WAN)。

我已经尝试了以下内容以及互联网上发现的每一种组合都没有成功:

git clone "ssh://user name@file-server/path to/repo"
git clone "ssh://user name@file-server/d/path to/repo"
git clone "ssh://user name@file-server/d:/path to/repo"

我收到以下错误(例如使用上面的第一行时):

fatal: '/path to/repo' does not appear to be a git repository
fatal: Could not read from the remote repository.

Please make sure you have the correct access rights and the repository exists.

我知道我有访问权限,因为我使用的是正确的用户名(以及提示输入密码时的密码)以及“Bitvise SSH服务器控制面板 - 活动日志”#39;表示登录成功。

Connection from [{mac address}]:59251 logged in as Windows account 'FILE-SERVER\User Name'.

此外,文件服务器(--bare)存储库肯定存在于" D:\路径中\ repo" 。目录

hooks (dir)
info (dir)
objects (dir)
refs (dir)
config (file)
description (file)
HEAD (file)

我是否正确将命令包装在引号中?

我是否需要添加' .git'到目录的末尾? EG:" repo.git"。我注意到很多人这样做。是个人偏好,不成文标准还是要求?

最后,当谈到Git时,路径区分大小写?

感谢您的帮助。

4 个答案:

答案 0 :(得分:0)

是的,最后你必须repo.git

例如,您可以像这样克隆现有的git存储库

git clone ssh://user@server:/GitRepos/myproject.git

答案 1 :(得分:0)

我尝试过完全一样但都失败了。 问题似乎是回购应该在Windows平台上的c盘上。

我发现

中没有任何区别
    git clone "ssh://<user name>@<file-server>/<path to repo>"
    git clone "ssh://<user name>@<file-server>/c/<path to repo>" <= note: changed 'd' to 'c'
    git clone "ssh://<user name>@<file-server>/c:/<path to repo>"

要获得其他驱动器上的仓库,我通过使用Windows驱动器上的Windows链接和文件夹帮助程序来解决它:

    mkdir /<helper folder on c-drive>
    cd /<helper folder on c-drive>
    mklink /J <repo name> <drive letter>:/<path to repo>

然后从帮助文件夹克隆

    git clone "ssh://<user name>@<file-server>/<path to helper folder>/<repo name>"

答案 2 :(得分:0)

好吧,过了一段时间我才弄清楚如何做到这一点。

git clone "ssh://user name@file-server:/D/path to/repo.git"

命令行中的Git与其中包含空格的任何其他命令没有区别。将其括在引号中......更具体地说,如果使用特殊字符,双引号的限制较少。

在默认安装(C:/)驱动器以外的驱动器上安装Git存储库并不会使事情变得复杂。

文件扩展名“.git”是必需的。

路径是否区分大小写?好吧,当使用Windows时,灵敏度不是问题。但是,为了使您正确无误(特别是在OS之间),最好反映区分大小写的做法。 IE:'A'与'a'不同。

最后,要反映与安装Git的驱动器号不同的驱动器号,请在计算机名称和正斜杠之间放置一个冒号。这就是绊倒我的问题。

我希望这些信息有助于其他人。

答案 3 :(得分:0)

在Azure DevOps Server的http克隆中遇到相同的问题,将所有空白替换为“%20” Ex:-

git clone http://yourdomain/project%20collection/project1

如果上述解决方案不起作用,请尝试用引号将URL加上空格和%20括起来。

相关问题