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

posted @ 2022-11-10 17:05  猕猴桃姑娘  阅读(834)  评论(0)    收藏  举报