git clone repo到远程机器

时间:2012-03-21 12:59:05

标签: git

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

 machine1:/usr/rep/  -> clone this to machine2:/var/new_repo

这个

的实际命令是什么

EDIT1   我正在尝试从machine1

创建克隆

EDIT2   我也试过以下git clone --bare user@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

5 个答案:

答案 0 :(得分:2)

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

ssh machine2 'git clone machine1:/path/to/repo /local/path/to/new/repo'

你需要在machine1上使用ssh-server。但是,您甚至可以只复制整个文件夹,因为在git中,存储库只是一个文件夹,因此复制它,将复制存储库。

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

答案 1 :(得分:2)

我认为有正当理由将克隆“推送”到远程计算机而不是在远程计算机上运行克隆,我在这里看不到其他答案。事实上,我有理由多次这样做。

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

描述: 该脚本将存储库克隆到远程服务器 并使这个新的存储库成为一个远程 当前的存储库。使用SSH协议。

这实现了推式克隆,无论何时都是必需的 一个人不想从远程机器克隆。例如:

  1. 无法访问本地服务器: 在本地计算机上进行开发时,人们不希望授予任何远程访问权限,但是希望将开发“发布”到服务器,然后其他人就可以访问该服务器。

  2. 远程服务器的公共登录: 当一个人没有对远程服务器的单独访问权限但只能以组用户身份登录时:在这种情况下,从远程服务器启动克隆需要将本地存储库服务器的凭据放在服务器的组帐户中。

答案 2 :(得分:0)

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

答案 3 :(得分:0)

git clone ssh://user@anothersite.com/usr/repo /var/repo/

我的意思是ssh user@host "git clone ssh://user@anothersite.com/usr/repo /var/repo/"

答案 4 :(得分:0)

如果您没有对原始 git 服务器或目标 git 服务器的 SSH 访问权限,那么您应该执行以下命令:

  1. 从您现有的 git 主机中检出存储库。使用 --mirror 参数:

    git clone --mirror <source-git-url> temp-dir
    
  2. 将相应的新仓库添加为本地仓库中的另一个远程仓库:

    cd temp-dir
    git remote add newrepo <target-git-url>
    
  3. 将整个 repo 推送到新位置:

    git push --mirror newrepo
    
  4. 删除您的临时本地存储库:

    cd ..
    rm -rf temp-dir