2010-01-19 115 views
16

因此,我有一个git存储库,我拉到一个点,并且存储库驻留在服务器上。我无法访问我从中取得的原始存储库。我如何从现有服务器获取代码到另一台计算机?从一台机器到另一台机器的Git存储库

编辑1: 因此,这里是什么样子:

  • 计算机:我最初是从签出Git仓库。我再也无法访问了。
  • 计算机B:我已将代码签出的共享服务器。
  • 电脑C:本地笔记本电脑。

我可以在不使用git的情况下简单复制那个目录,或者我可以使用git克隆从B到C的克隆吗?

+0

哇 - 只是寻找在这个问题 - 欢闹! – 2012-07-16 03:32:04

回答

5

您可以从网络位置或拉翻过复制到另一台计算机的整个目录(含git的文件夹)。

3

您可以只复制从服务器,假设你有机会获得该副本存储在哪里 - 分配的功率;)

+0

我不确定我有权访问克隆的存储位置。不知道我是如何拉原始代码集。 – 2010-01-19 03:18:38

+0

我认为马特意味着将其从计算器B(“现有服务器”)克隆到计算机C(“另一台计算机”)。计算机A是您无法再访问的计算机。手册中的git克隆条目:http://www.kernel.org/pub/software/scm/git/docs/git-clone.html – 2010-01-19 03:20:11

+0

您在本地计算机上有克隆吗?你可以从相同的克隆中克隆出来;这些存储库包含所有相同的信息,模数自上次提取以来的任何更改。 – 2010-01-19 03:20:35

0

你的意思是你想它克隆到另一台计算机?

如何:

git clone ssh://myserver/path/to/myproject.git 
-2

如果我没有理解这个问题吧,你只是想的B传输的码历史C.其实因为Git使用德为中心的模式,B具有直到B和A之间的最后一次同步点代码的完整历史记录。

我能想到的三种方法,如果你只是想的B转码历史到C:

  • 直接拷贝/ rsync的/等。只需将\ B-machine \ code.git中的所有文件和结构复制到\ C
  • git clone:如果C可以通过http或ssh访问B,这是最佳选择
  • git bundle:git支持bundle命令,束,复制/ rsync的/ FTP/SCP束文件到C
2

您可以从计算机运行C:

git clone [email protected]_B:path/to/root/of/repository 

假设计算机B有一个SSH服务器上运行。 支持其他协议(文件://,http://,\\ computer_B(NetBios),...)

31

这是通过在计算机B上创建一个存储库的克隆来实现的, COMPUTER C上的命令git clone,您希望在其中创建克隆存储库。 git中的克隆可以使用多种协议完成,包括ssh,https,git;并且这些要求git clone命令的适当设置才能成功。

最简单的方法是使用下面的命令来启动计算机B git的服务器:

> git daemon 

对于上述命令的帮助,运行git help daemon

然后将其放置在git的文件夹中的标记文件在计算机B上的存储库的权限授予git服务器在该存储库上运行克隆命令。这是通过:计算机C现在

> cd <repository root>/.git 
> touch git-daemon-export-ok 

,从终端,运行以下命令:

> cd <folder in which to create the cloned repository> 
> git clone git://<ip address of COMPUTER B>/<full path of the repository on COMPUTER B> 

这将计算机C.创建克隆库

+0

它给出错误:访问被拒绝或存储库未导出。 – 2016-03-15 13:15:42

+0

我得到'连接被拒绝'我如何在git repos中设置git权限? – 2017-03-29 12:56:36

相关问题