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