【问题标题】:git-merge with repository on local filesystemgit-merge 与本地文件系统上的存储库
【发布时间】:2009-10-30 19:59:05
【问题描述】:

对于某些情况:我刚刚升级了 Ubuntu,它破坏了我现有的 gitosis 安装(见这里:bug #368895),并且刚刚从包中重新安装了 gitosis。我现在想从旧的 gitosis 安装中迁移我的整个配置和存储库集(它仍然存在,可以从中拉出,但会被破坏)。

我现在在本地有两个 gitosis-admin 目录,一个用于每个 gitosis 安装。一个有完整的历史,另一个是空的。我想回顾这段历史。以下是正在发生的事情:

me@server:~/gitosis-admin-new$ git merge ../gitosis-admin-old/
fatal: '../gitosis-admin-old/' does not point to a commit

...~/gitosis-admin-old/~/gitosis-admin-new/ 中有 git 存储库

我可能也需要为其他存储库执行此操作,这些存储库具有更长和更重要的历史,因此无法选择复制和提交。

我做错了什么?我试过指向 .git/HEAD ,据我所知这是一个提交,但这不起作用。有人可以解释如何做到这一点吗?谢谢!

【问题讨论】:

    标签: git gitosis git-merge


    【解决方案1】:

    您需要将git pull 与存储库一起使用,而不是git merge(用于分支):

    git pull ../gitosis-admin-old/
    

    您可能需要在远程选择一个分支进行合并,例如:

    git pull ../gitosis-admin-old/ master
    

    如果您只需要执行一次此合并,那么在jamessan answer 中使用git remote add 是不必要的工作。另一方面,如果您要重新访问遥控器(拉多次),此解决方案将比使用git pull <location> <branch> 更好。

    【讨论】:

    • 接受;由于“大师”,jamessan 的回答得到了肯定!非常感谢:)
    • 在新版本的 git 中你还必须使用 `--allow-unrelated-histories`
    【解决方案2】:

    您需要为该存储库创建一个远程,然后从那里获取和合并(或简单地提取)。

    git remote add admin-old file://$HOME/gitosis-admin-old
    git pull admin-old
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-31
      • 2012-06-05
      • 1970-01-01
      • 2016-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多