14

对于某些情况:我刚刚升级了 Ubuntu,它破坏了我现有的 gitosis 安装(请参见此处:错误 #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

... 有 git 存储库的地方~/gitosis-admin-old/~/gitosis-admin-new/

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

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

4

2 回答 2

26

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

git pull ../gitosis-admin-old/

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

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

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

于 2009-10-30T23:25:27.890 回答
5

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

git remote add admin-old file://$HOME/gitosis-admin-old
git pull admin-old
于 2009-10-30T20:12:39.460 回答