把 Git 回收转移到另一台电脑上?

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

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

53377 次浏览

我建议您使用 clone存储库来代替复制。克隆是你正在努力完成的事情的正确范例。克隆的项目还将包含所有 git元数据和信息。

在目标机器上:

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

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

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

是的,把数据拷贝到另一台机器上就足够了。使用 git 克隆几乎是同样的事情,但是它会将要克隆的计算机设置为远程源,这可能不是您想要的。

对于您的情况,最好的方法是复制文件夹(复制,scp,cp,机器复制-以其中之一为准)到新的计算机,并删除旧的文件夹。

我完全不同意@Pablo Santa Cruz 的观点,克隆是你正在做的事情的范例。不,不是的。你要把回购单转移到一台新电脑上。

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

  • 它在克隆的存储库 中为每个分支创建远程跟踪分支。
  • 任何远程分支和其他引用都被完全忽略。
  • 如果你有鱼钩的话,你就拿不到了,你可能会忘记你有鱼钩!
  • 你不能得到“丢失”提交等使用 gitreflog 或其他方式。 可能不是一个大问题,特别是如果回购作为一个服务器,但是需要注意的东西。

如果您搜索备份 git 回购的方法,git 克隆不会出现在顶部的答案中。所以它不应该被用来转移回购!我也觉得仅仅一个 git clone不是一个合适的答案,因为 git clone--mirror选项,而 蜜饯是回购,这意味着 git clone回购不同于 git clone --mirror回购(除了是裸的,差异主要是我上面提到的)。我会做一个副本,因为我 知道什么我得到的复制回购-的 一样回购!

何时考虑 git 克隆:

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

在处理一个项目时,您必须转移到一台新计算机。

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

    Git 远程更新

git bundle子命令用于脱机传输存储库。

在源计算机上,在 Git 工作区中执行以下命令:

$ git bundle create --progress myproject.bundle --all

然后将创建的文件 myproject.bundle传输到目标计算机,并在那里执行以下命令:

$ git clone myproject.bundle myproject

更多信息,请看 Bundle 子命令的 man 页