我怎样才能推送到git包

时间:2012-08-09 02:43:43

标签: git push bundle

我刚刚开始使用git进行版本控制。我想在本地文件服务器上保留我的存储库的备份副本。在阅读了备份git存储库的正确方法之后,我决定将存储库存储为文件服务器上的git包。

我可以捆绑我的存储库并将生成的包复制到文件服务器。校验。我也试过克隆和拉扯它。一切运作良好。但是,我也想不时地推动我的本地变化。当我执行像

这样的事情
git push bundlefile.git

我收到错误:

error: failed to push some refs to 'bundlefile.git'

您可以克隆或从捆绑中提取,但是无法推送它吗?我每次想要备份时都不想创建整个存储库的捆绑包。

此用户错误或捆绑包是否不打算推送到?

3 个答案:

答案 0 :(得分:7)

您无法直接推送到捆绑文件。捆绑文件是存储库的压缩表示,要修改它将涉及再次捆绑,推送和捆绑。

执行此操作的一种方法是按照您的说法,每次要进行备份时都创建一个新的捆绑包。

另一种方法是在文件服务器上创建 bare 存储库,并推送到该存储库。裸存储库是没有工作目录的存储库,它实际上是普通克隆的.git目录的内容。您可以使用git init --bare创建一个裸存储库。

答案 1 :(得分:0)

如果您具有对远程文件服务器的写访问权,请确保:

myrepo$ git init --bare //server/my/backup/folder/myrepo.git
myrepo$ git remote add backup  //server/my/backup/folder/myrepo.git
myrepo$ git push backup --mirror

我还没有尝试过,但是在MSys中,我使用/j/myFolder/myrport.git和

myrepo$ git push --set-upstream backup master

然后还原只是该还原的一个副本

dev$ git clone //server/my/backupo/folder/myrepo.git
Cloning into myrepo...
dev$ cd myrepo

,您又回到了快乐的地步。

答案 2 :(得分:-5)

听起来您在文件服务器上有权限问题。确保您的用户/组具有写入权限。