git bundle 的使用探索
git官网介绍git bundle:Move objects and refs by archive

应用的一个场景是: 因网络不畅提交不上代码仓库,可离线打包当前分支代码的提交内容,传送给另一个人,解压使用。
模拟操作走起来(以下是可以直接成功的,中间遇到的问题在文章后面进行了补充说明):
1、A项目分支wyk_bundle提交了2个本地记录,进行打包
git bundle create test.bundle wyk_bundle
2、B项目(与A项目是同一个git地址),将test.bundle放在与B项目文件的同级目录,进入wyk_bundle分支
git fetch ../test.bundle wyk_bundle:wyk_bundle_backup
3、切换到新的分支wyk_bundle_backup,查看日志
git checkout wyk_bundle_backup
git log
可以查看到A项目wyk_bundle的两条新纪录,接下来合并代码就可以啦!
注:
1、验证打包文件是否可用
git bundle verify ../test.bundle
2、打包文件包含的纪录
git bundle list-heads ../test.bundle
可能遇到的问题:
1、拉取bundle文件报错 ! [rejected]
报错写法:
git fetch ../test.bundle wyk_bundle:wyk_bundle
正常拉取(拉取到新的本地分支,之后再进行代码合并):
git fetch ../test.bundle wyk_bundle:wyk_bundle_backup
2、拉取bundle文件报错:fatal: couldn't find remote ref wyk_test
报错写法(打包的bundle文件不是wyk_test,是wyk_bundle):
git fetch ../test.bundle wyk_test:wyk_bundle_backup
3、拉取bundle文件报错:fatal: Refusing to fetch into current branch refs/heads/wyk_1 of non-bare repository
参考文章:https://blog.csdn.net/weixin_34013044/article/details/94070626

浙公网安备 33010602011771号