移动一个Git仓库到第二台电脑?

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

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

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

我完全不同意@Pablo圣克鲁斯,克隆是你在做什么的范例。 不它不是。 您正在将回购转移到新电脑。

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

  • 它为克隆的存储库中的每个分支创build远程跟踪分支 。 你正在移动,旧的回购已经失效。
  • 任何远程分支和其他参考都完全被忽略。
  • 如果有的话,你的钩子没有了,你可能会忘记你有它们!
  • 你不能使用git reflog或其他方式来获得“丢失”提交等。 可能不是一个巨大的问题,特别是如果回购作为服务器,但要注意的东西。

如果您search备份git回购的方法,git克隆不会在最佳答案。 所以它不应该用于移动回购! 我也觉得,只是一个git clone不能是一个正确的答案,因为git clone--mirror选项,这保留了回购,这意味着git clone回购不同于git clone --mirror回购(除裸露,差异主要是我上面提到的那些)。 我会做一个副本,因为我知道我得到的复制回购 – 相同的回购!

何时考虑git clone:

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

是的,将数据复制到其他机器就足够了。 使用git克隆几乎是一回事,但它会设置你从远程克隆的计算机,这可能不是你想要的。

而不是复制,我build议你clone存储库。 克隆是你正在努力完成的正确的范例。 克隆的项目也将包含所有的git元数据和信息。

在目标机器上:

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

而不是使用git://也可以使用ssh://http://协议来访问存储库。 更多信息请参考git手册。

因为每个克隆本身也是一个回购,只需要在第二台计算机上克隆第一个。