[英]How can I push to a git bundle
我刚刚开始使用git进行版本控制。 我想在本地文件服务器上保留我的存储库的备份副本。 在阅读了备份git存储库的正确方法之后,我决定将存储库存储为文件服务器上的git包。
我可以捆绑我的存储库并将生成的包复制到文件服务器。 校验。 我也试过克隆和拉扯它。 一切运作良好。 但是,我也想不时地推动我的本地变化。 当我执行类似的事情
git push bundlefile.git
我收到错误:
error: failed to push some refs to 'bundlefile.git'
您可以克隆或从捆绑中提取,但是不可能推送它吗? 每次我想要备份时,我真的不想创建整个存储库的捆绑包。
这个用户是错误还是捆绑不打算推送到?
您无法直接推送到捆绑文件。 捆绑文件是存储库的压缩表示,要修改它将涉及再次捆绑,推送和捆绑。
一种方法是按照您的说法,每次要进行备份时创建一个新的捆绑包。
另一种方法是在文件服务器上创建一个裸存储库,并推送到该存储库。 裸存储库是没有工作目录的存储库,它实际上是普通克隆的.git
目录的内容。 您可以使用git init --bare
创建一个裸存储库。
如果您对远程文件服务器具有写入权限,请务必:
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
而你又回到了快乐的地方。
听起来你在文件服务器上有权限问题。 确保您的用户/组具有写入权限。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.