【问题标题】:How do I clone a repo to a remote server using ssh如何使用 ssh 将 repo 克隆到远程服务器
【发布时间】:2010-10-21 00:31:51
【问题描述】:

我有两台服务器,A 和 B。A 有 repo,可以 ssh 到 B。B 是一个新服务器我想要 repo,但不能 ssh 到 A。我已经尝试复制 repo,创建一个远程推送,带有 -u 的 git clone ... 有什么建议吗?

【问题讨论】:

  • 如果您没有 ssh 访问权限,您有什么样的访问权限?只要您有某种(可能是间接的)文件系统访问权限,您所要做的就是复制文件...
  • 我的意思是,由于防火墙,服务器 B 无法访问服务器 A。 A 是内部开发服务器,B 是外部服务器供顾问审核。

标签: git repository push


【解决方案1】:

在 B 上创建空存储库

B$ git init --bare repo.git

然后使用 SSH 协议从 A 推送到它

A$ git push ssh://B/full/path/to/repo.git

【讨论】:

  • 嗯,所以我尝试了这个... B$ git init --bare external A$ git push ssh://user@B/full/path/to/repo.git 我得到了这些消息:没有共同的参考,也没有指定;什么也不做。也许您应该指定一个分支,例如“master”。致命:远端意外挂断
  • @user481826:对不起,我混合了使用更简单但设置方法更复杂的方法,您可以使用基于 URL 的无配置方法创建“远程”配置以从 A 推送到 B ,您必须指定要推送的分支,或使用--all/--mirror
  • A$ git push ssh://B/full/path/to/repo.git ':'
【解决方案2】:

将 B 设置为 A 的远程设备的一种方法是在 B 上安装 gitosis,然后将 repo 从 A 推送到 B。

有关 gitosis 的更多信息,请参阅http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way。如果你使用的是 git 而不是 gitosis,那你就错过了!

【讨论】:

  • 谢谢,我会看看 gitosis 看看我错过了什么。
  • 我安装了 gitosis 并且能够将 repo 推送到外部服务器。谢谢!
【解决方案3】:

您说您尝试过复制是什么意思?你试过像这样使用scp吗?

scp -R path/to/repo/on/A user@B:desired/path/to/repo/on/B

请注意,: 后面的路径是相对于用户的主目录的,除非它以 / 开头。

【讨论】:

  • 我已经尝试将 repo 复制过来,首先使用 scp 和 tar 文件夹。我可以在那里获取文件,但是当我尝试新 repo 的 git log 时,出现致命错误。
猜你喜欢
  • 2017-08-15
  • 2014-04-30
  • 2018-08-02
  • 1970-01-01
  • 2010-10-24
  • 1970-01-01
  • 1970-01-01
  • 2017-02-15
  • 2013-08-07
相关资源
最近更新 更多