git克隆repo到远程计算机

git克隆repo到远程计算机,git,Git,如何将本地目录中的repo克隆到远程mchine目录 machine1:/usr/rep/ -> clone this to machine2:/var/new_repo 实际的命令是什么 EDIT1 我正在尝试从machine1创建克隆 EDIT2 我还尝试了以下git克隆--bareuser@anothersite.com/usr/repo/var/repo/不确定这样做是否正确 EDIT3 这是在EDIT2中执行命令后出现的错误 You have no controlling

如何将本地目录中的repo克隆到远程mchine目录

 machine1:/usr/rep/  -> clone this to machine2:/var/new_repo
实际的命令是什么

EDIT1
我正在尝试从machine1创建克隆

EDIT2
我还尝试了以下
git克隆--bareuser@anothersite.com/usr/repo/var/repo/
不确定这样做是否正确

EDIT3
这是在EDIT2中执行命令后出现的错误

You have no controlling tty and no DISPLAY. Cannot read passphrase. fatal: The remote end hung up unexpectedly 

================================================Initialized empty Git repository
in /var/repo/ DEBUG: remote_exec loop:$stderr: Initialized empty Git repository
in /var/repo/ DEBUG: create_repoX loop: $stdout: DEBUG: create_repoX loop: 
$stderr: Initialized empty Git repository in /var/repo/ DEBUG: create_repoX loop: $exit: 32768 

你没有。您可以在远程计算机上运行
git clone
,并从machine1进行克隆。如果不可能,只需在机器1上本地克隆它,然后将整个文件夹复制到机器2。

git clonessh://user@anothersite.com/usr/repo/var/repo/


我的意思是
sshuser@host“git克隆ssh://user@anothersite.com/usr/repo/var/repo/“

将命令传递给
ssh
,并从machine2克隆存储库

您需要在machine1上安装ssh服务器。但是,您甚至可以复制整个文件夹,因为在git中存储库只是一个文件夹,因此复制它将复制存储库

scp -r /path/to/repo machine2:/var/new_repo

我认为将克隆“推送”到远程机器是有正当理由的,而不是在远程机器上运行克隆,我看这里的其他答案没有涵盖这一点。事实上,我有理由这样做过很多次

我写了一个脚本来轻松处理它:

说明: 脚本将存储库克隆到远程服务器 并使这个新存储库成为远程存储库 当前数据库的存储库。使用SSH协议

这实现了一种推式克隆,这在任何时候都是必要的 不希望从远程计算机克隆。例如:

  • 没有对本地服务器的传入访问: 在本地计算机上进行开发时,用户不希望向其授予任何远程访问权限,但希望将开发“发布”到其他用户可以访问的服务器

  • 远程服务器的公用登录: 当用户无法单独访问远程服务器,但只能作为组用户登录时:在这种情况下,从远程服务器启动克隆需要将本地存储库服务器的凭据放入服务器的组帐户中


  • 如果您没有对源git服务器或目标git服务器的SSH访问权限,则应执行以下命令:

  • 从现有git主机签出存储库。使用--mirror参数:

    git克隆--镜像临时目录
    
  • 将相应的新回购添加为本地存储库中的另一个远程回购:

    cd-temp-dir
    git远程添加newrepo
    
  • 将整个回购推到新位置:

    git推送——镜像newrepo
    
  • 删除临时本地存储库:

    cd。。
    rm-rf温度目录
    

  • 您如何提供访问权限?推(服务器是远程的)或拉(服务器是本地的)?@reactormank您听说过
    sftpserver
    和朋友吗?许多“服务器”将乐于通过SSH连接使用标准I/O重定向来实现类似的功能。唯一真正的先决条件应该是在远程机器上安装
    git
    (以及
    sshd
    )。但是,这是Git。。。简单的事情并不简单,复杂的事情也不总是可能的:我尝试了以下方法,但似乎不起作用,你知道为什么ssh site.com“git clone--bare/var/repo/”没有控制tty,也没有显示。无法读取密码短语。致命:远程端意外挂起==============================================================在/var/repo/DEBUG中初始化空Git存储库:远程执行循环:$stderr:/var/repo/DEBUG中初始化空Git存储库:$stdout:DEBUG:create\u repoX循环:$stderr:create\u repoX循环:$stderr:Initialized空Git存储库/var/repo/DEBUG:create_repoX loop:$exit:32768如前所述,我在前面尝试过,但我已经提到了错误,不知道您对machine1通过SSH从machine2访问的假设是什么。没有这样的假设。事实上,在machine1无法从machine2访问的情况下,此脚本正是有用的。如果machine1是可访问的,人们可以简单地进行标准克隆。但据我所知,您不是使用
    git push
    将克隆文件上载到新服务器,而是使用ssh和scp。所以这不是推送克隆,而是scp克隆。。。
    scp -r /path/to/repo machine2:/var/new_repo