与本地文件系统上的存储库进行git-merge

时间:2009-10-30 19:59:06

标签: git gitosis git-merge

对于某些情况:我刚刚升级了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,据我所知是提交,但这不起作用。有人可以解释如何做到这一点?谢谢!

2 个答案:

答案 0 :(得分:23)

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

git pull ../gitosis-admin-old/

您可能需要在远程中选择要合并的分支,例如:

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

如果您只需要合并一次,那么在jamessan answer中使用git remote add就不必要了。另一方面,如果您要重新访问遥控器(拉动多次),此解决方案将优于使用git pull <location> <branch>

答案 1 :(得分:4)

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

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