2012-02-11 61 views
0

我想在远程git服务上使用回购作为本地创建回购的备份。远程服务即Bitbucket,但问题可以适用于其他人。从本地回购备份到远程服务(如Bitbucket)

我无法在Bitbucket上创建裸回购(或者我可以吗?),所以我不知道如何使用'push --mirror'。

推进各分公司,并承诺是那种美好的,但我们要推的更越好,如: 标签,远程三分球,远程分支机构 - 所以,如果我们克隆回来下游,我们得到了一个克隆即已经足够接近原始的本地回购,而不需要太多的重新布线。

我们不关心未提交的工作或工作目录或暂存区域。工作流程将执行提交,然后推送到备份。

我们不是在寻求一个涵盖工作和临时区域的完美克隆。此外,我们并不寻求防弹备份,我明白分支机构可以在本地删除,并在远程丢失。所以基本上这是一个简单的方法来对已经存在的服务进行部分备份,并提供免费的私人帐户 - 其中 提供了一定程度的冗余,因此提供了一些思路。

我该如何实现上述目标。

首先编辑:

这是第一次试验的日志 - 不是我想从我的所有本地测试预期,但是这就是我得到:

  • 上创建回购到位桶:
https://[email protected]/shishani/test1.git 
  • 本地会话
$ git remote add bbtest1 https://[email protected]/shishani/test1.git 

$ git status 
# On branch master 
nothing to commit (working directory clean) 

$ git branch -a 
* master 
    remotes/origin/HEAD -> origin/master 
    remotes/origin/master 

$ git remote -v 
bbtest1 https://[email protected]/shishani/test1.git (fetch) 
bbtest1 https://[email protected]/shishani/test1.git (push) 
origin /more/coding/git-tests/test-orig (fetch) 
origin /more/coding/git-tests/test-orig (push) 


$ git push --mirror bbtest1 
Password: 
fatal: remote part of refspec is not a valid name in :capabilities^{} 
fatal: The remote end hung up unexpectedly 

任何想法是怎么回事?!

第二个编辑:

我分叉了意外的错误消息在这里另外一个问题: fatal: remote part of refspec is not a valid name in :capabilities^{}

回答

1

我没有用到位桶,但这一过程将与上述任何或多或少相当于托管提供商:

创建远程存储库。(如:test

添加它作为一个遥控器来的git:

# these paths should be accurate, but check your repo provider 
git add remote bitbucket https://[email protected]/you/test.git 
git add remote github [email protected]:you/test.git 

推到它:

git push bitbucket --mirror 
git push github --mirror 
+0

谢谢,请检查我的编辑 - 我打算重现我的所有本地测试,但是我用Bitbucket获得了一些新的意想不到的东西。 – 2012-02-12 02:36:41

+0

我怀疑本地裁判有一个名称,远程不接受,但我不知道为什么。但是,本地存储库中有些奇怪,因为您遵循的步骤应该已经工作。我会建议依次推送每个裁判,找出哪一个不好。 – 2012-02-12 02:46:41