将git repo移动到第二台计算机?

时间:2011-05-01 22:45:17

标签: git

我有一个带有简单本地git仓库的项目,我希望这个项目(文件夹等)移动到另一台计算机,并从现在开始在那里工作。我不想在旧机器上留下任何东西(当然除了我的其他git项目)。我希望它就像我一直在新机器上工作一样。

我可以简单地将所有文件移到该计算机上,还是会出现按键问题?我应该在两台机器上使用相同的密钥吗?如果只是移动所有文件夹无法完成,我该怎么办?我想避免设置和学习使用服务器的麻烦,因为这看起来很复杂,我不想改变我的工作流程。

5 个答案:

答案 0 :(得分:60)

对于您的情况,最好的方法是将文件夹(copy,scp,cp,robocopy - 无论哪个)复制到新计算机并删除旧文件夹。

我完全不同意@Pablo Santa Cruz,克隆是你正在做的事情的范例。不它不是。您正在将回购移动到新计算机。

为什么我不喜欢克隆用于此目的:

  • 它为克隆存储库中的每个分支创建远程跟踪分支。你正在搬家,旧的仓库已经不复存在了。
  • 完全忽略任何远程分支和其他引用。
  • 如果你有任何钩子,你就不会得到它们,你可能会忘记你拥有它们了!
  • 你不能使用git reflog或其他手段获得“丢失”提交等。可能不是一个大问题,特别是如果repo充当服务器但需要注意的事情。

如果您搜索备份git repo的方法,git clone将不在最佳答案中。因此它不应该用于移动回购!我还认为只有git clone不能成为正确的答案,因为git clone具有--mirror选项,保留回购,这意味着{{1} repo与git clone repo不同(除了裸露之外,差异主要是我上面提到的)。我会做一份副本,因为我知道我用复制的回购获得了什么 - 相同的回购!

什么时候考虑git clone:

  1. git在克隆时进行了一些优化,速度更快
  2. 您可能在新计算机上有不同的git版本,而副本可能会使repo在其他版本中无法使用(现在不常见)。但实际上这可能是另一个复制专家,因为这会告诉你新计算机有不同的git版本。

答案 1 :(得分:3)

是的,它足以将数据复制到另一台机器上。使用git clone几乎是一样的,但是它会将你克隆的计算机设置为远程源,这可能不是你想要的。

答案 2 :(得分:0)

在处理项目时,您被迫转移到新计算机上。

  1. 保存文件并将文件复制到新计算机
  2. 在新计算机上,安装git并创建ssh密钥
  3. 在每个项目文件夹上运行此

    git远程更新

答案 3 :(得分:-2)

因为每个克隆本身也是一个repo,只需克隆第二台计算机上的第一个。

答案 4 :(得分:-4)

我会建议您clone存储库,而不是复制。克隆是您正在尝试完成的正确范例。克隆的项目还将包含所有git元数据和信息。

在目标计算机上:

$ git clone git://your-repo/proj proj

您也可以使用git://ssh://协议访问存储库,而不是使用http://。有关详细信息,请参阅git手册。