我有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时,路径区分大小写?
感谢您的帮助。
答案 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括起来。