如何将我的 git 项目从本地存储库(旧笔记本电脑)转移到另一个本地存储库(新笔记本电脑)?

时间:2021-02-27 17:02:02

标签: git

我正在处理我的 git 项目,本地存储库在我的笔记本电脑(旧)上。我买了一台新的笔记本电脑,想继续使用它。我想将我的 git 项目从我的旧笔记本电脑转移到我的新笔记本电脑。我该怎么做?

1 个答案:

答案 0 :(得分:0)

评论中的“答案”是可能的解决方案,但它们可能无法复制您想要的所有内容。

如果您想像在旧笔记本电脑上一样无缝地继续使用该存储库,那么您可能只需复制该存储库(包括应该位于顶部的 .git 文件夹)工作树)到新的笔记本电脑。您不应该使用它作为在两个活跃使用的存储库之间传输数据的方式(出于各种原因),但是如果您想将本地存储库从一个地方移动到另一个地方,这几乎总是[ 1] 很好。 (即使您打算继续使用这两个副本,也可以在副本的初始设置中使用此方法,但您需要小心处理尚未提交的数据。)

优点是它可以复制一切。有几种类型的数据 git 在克隆(或获取,或推送,...)时不会共享。如果您使用这些东西中的任何一个,那么您必须手动将它们应用到新的存储库。其中包括:

  • 引用
  • 客户端钩子
  • 本地 repo 配置(即 .git/config 中的设置;笔记本电脑上的系统范围配置是另一回事);这可能包括遥控器的配置(尽管如果您只有一个遥控器并从该遥控器重新克隆,那么这将不是问题)
  • 存储在 .git 下的其他本地设置,例如 .git/info/exclude 中的非共享排除规则
  • refs(您选择共享的分支和标签除外) - 至少,默认情况下
  • 工作树和索引中未提交(和/或未跟踪)的数据

如果您没有任何重要的本地数据,那么从源创建新的克隆当然就像您是加入该项目的新用户一样;但我们必须至少考虑到如果问题那么简单,你就不会问这个问题的可能性。


[1]“几乎总是”,因为总是存在边缘情况。

如果 repo 不是自包含的(即如果工作树有符号链接,也许),那可能会产生后果。

如果您有多个用于存储库的工作树,并且它们没有组合在一个父目录中,这可能并不像听起来那么简单。

如果两台机器的 git 版本大不相同,那么也许一些深奥的变化会导致新笔记本电脑的版本被旧笔记本电脑版本创建的存储库打乱 - 但我不知道具体的版本组合会有这样的问题。