通过本地网络进行 Git 克隆/拉取

通过本地网络进行 Git 克隆/拉取

我正在尝试使用 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)

相关内容