我正在尝试使用 Ubuntu Quantal 在另一台 PC 上克隆/提取存储库。我以前在 Windows 上做过这个,但我不知道 ubuntu 上的问题是什么。我尝试了这些:
git clone file:////pc-name/repo/repository.git
git clone file:////192.168.100.18/repo/repository.git
git clone file:////user:pass@pc-name/repo/repository.git
git clone smb://c-pc/repo/repository.git
git clone //192.168.100.18/repo/repository.git
我总是得到:
Cloning into 'intranet'...
fatal: '//c-pc/repo/repository.git' does not appear to be a git repository
fatal: The remote end hung up unexpectedly
或者
fatal: repository '//192.168.100.18/repo/repository.git' does not exist
更多的:
- 另一台电脑有用户名和密码
- 不是网络问题,我可以访问并 ping 它。
- 我刚刚安装了 git 并执行
apt-get install git
(已安装依赖项) - 我正在从终端运行 git(我没有使用 git-shell)
是什么原因造成的?如何解决?任何帮助都非常感谢!
更新
我已经在 Windows 上克隆了 repo,git clone //192.168.100.18/repo/intranet.git
没有任何问题。因此,repo 可以访问并且存在!也许问题出在用户凭据上?
答案1
这取决于您如何配置服务器来提供内容。
如果通过 ssh:
git clone [email protected]:repo/repository.git
或者如果网络服务器提供内容(http 或 https)
https://[email protected]/repo/repository.git
或者如果可以通过文件路径获取:
git clone file://path/to/repo
或者如果服务器正在运行 git 守护进程:
git clone git://192.168.100.18/repo
答案2
手册上git-clone
说:
Git natively supports ssh, git, http, https, ftp, ftps, and rsync protocols
请注意,SMB 不在列表中。
git
在 Windows 上运行时,该//host/path
语法有效,因为操作系统本身支持它 - SMB 远程路径可以在任何可以使用本地路径的地方使用。但在 unix 中情况并非如此,SMB 是一个外来事物,//
相当于/
路径名解析算法。
挂载远程文件系统,然后您将能够使用 unix 风格的路径名来引用它git
(以及系统上的所有其他工具)可以理解的路径名。
有关安装 smbfs 的信息:https://askubuntu.com/questions/137011/how-to-mount-a-samba-shared-folder-ubuntu-x-ubuntu
答案3
这个问题似乎类似于https://stackoverflow.com/questions/5200181/how-to-git-clone-a-repo-in-windows-from-other-pc-within-the-lan. 也许管理共享有助于缓解该问题(例如 //pc-name/c$/path/to/repo)