如何从一台机器上的git存储库克隆到另一台机器?

时间:2011-12-21 00:18:04

标签: git

我已经从我的笔记本电脑上运行macosx的服务器克隆了一个git存储库。 我有一台运行Linux的笔记本电脑B,如何从笔记本电脑A上的git存储库中克隆?

如何从中获取要克隆的网址?

谢谢。

4 个答案:

答案 0 :(得分:4)

如果笔记本电脑1上有SSH服务器,则遥控器将为:

user@host:/path/to/repository

即输入:

git clone user@laptopA:/path/to/repository

答案 1 :(得分:1)

虽然您可以在Web服务器上托管您的仓库,但您可以保持简单,您可以直接共享文件并直接从目录克隆(这将是机器文件路径 - \ linuxbox \ gitshare \ myproject)。

我建议有一个“主”裸存储库来克隆,以便在机器之间需要时简化合并。

答案 2 :(得分:1)

您需要设置git守护程序或ssh

由于您要从Mac克隆,

第一种方式 - 使用git守护程序,轻量级服务器

  1. Mac:在mac上前往您的存储库,确保它是裸的,即当您运行ls -lrt时,它应该看起来像

    drwxr-xr-x   4 fooo  admin  136 21 Dec 12:26 refs
    -rw-r--r--   1 fooo  admin  205 21 Dec 12:26 packed-refs
    drwxr-xr-x   4 fooo  admin  136 21 Dec 12:26 objects
    drwxr-xr-x   3 fooo  admin  102 21 Dec 12:26 info
    drwxr-xr-x  12 fooo  admin  408 21 Dec 12:26 hooks
    -rw-r--r--   1 fooo  admin   73 21 Dec 12:26 description
    -rw-r--r--   1 fooo  admin  161 21 Dec 12:26 config
    drwxr-xr-x   2 fooo  admin   68 21 Dec 12:26 branches
    -rw-r--r--   1 fooo  admin   23 21 Dec 12:26 HEAD
    

    如果没有,则执行步骤2

  2. 运行git clone --bare /<Path to your repository>

  3. 创建一个空文件git-daemon-export-ok:echo '' > git-daemon-export-ok

  4. 运行

    git daemon --base-path=`pwd` --verbose --port=9418
    
  5. Linux:克隆您的git存储库:

    git clone git://<mac os ip address> <name of folder you want to check out to> 
    

    示例 -

    git clone git://192.168.1.2 javaAddOn
    
  6. 第二种方式 - 使用ssh - [稍微更难]

    1. MAC:在Mac中,系统首选项=&gt;远程登录

    2. 打开终端以创建ssh密钥:

      cd ~
      ssh-keygen -t rsa    #Press enter for all default values
      cd .ssh
      cat id_rsa.pub >> authorized_keys
      
    3. LINUX:执行与步骤2中相同的步骤,跳过创建authorized_keys

    4. 将授权密钥从mac复制到Ubuntu下〜/ .ssh / -

      scp <macuser>@<macip>:/Users/<macuser>/.ssh/authorized_keys ~/.ssh/
      
    5. 检查以确保您可以从Linux进行ssh。 ssh <macuser>@<macip>

    6. 如果第5步成功,您可以使用git。

      git clone <macuser>@<macip>:<Full Path of the repository location
      
    7. 例如

          git clone pm@192.168.1:/Users/pm/repositories_git/JavaTasks
      

      最后,如果你想在Mac和Linux中进行开发并同时提交,你必须使用第二种方式,然后推送和拉动更改。我有完全相同的设置,但通常我只在Linux中开发,然后将更改推送到Mac。

答案 3 :(得分:0)

我想像

这样的东西
git clone file://\\\\192.168.0.33\yourpath

会起作用