WechatIMG20.jpeg今天用SourceTree克隆一个项目,出现了下面的问题
warning: templates not found /usr/local/git/share/git-core/templates
warning: redirecting to http://xxx/ios/xxx.git/
remote: aborting due to possible repository corruption on the remote side.
fatal: protocol error: bad pack header
clone于是就开始搜索各种解决办法,仔细的筛查过,没有跟我这个错误信息是一模一样的帖子,但是有很多围绕着
templates not found /usr/local/git/share/git-core/templates
和remote: aborting due to possible repository corruption on the remote side
相近的帖子.一个类似关于out of memory
的解决办法给了我灵感.总结出这个问题大概率是仓库太大,无法克隆成功,于是我就采用下面的迂回战术尝试了下,先附上过程截图.
1.我的需求是将远程仓库的多个分支的内容克隆下来,首先,先克隆master分支上的内容,但是只要最近一次提交的内容
命令行:
git clone http://xxxxx.git -- depth 1
-- depth 1
就是克隆深度,1代表最近1次提交 ,可以根据自己的需求更改
如果不想要master上面的内容,想指定分支,就用下面的命令行
git clone -b 分支名 http://xxxxx.git -- depth 1
2.克隆成功后进入仓库,执行
git branch -a
查看当前所有分支,我这里看到只有默认的master分支,然而origin还有分支却看不到,这时就用下面的命令,拉取你想要的远端分支命令行:
git remote set-branches origin 分支名
命令行:git fetch --depth 1 origin 分支名
3. 远端分支已经有了就关联本地分支
执行第2步后再
git branch -a
可以看到远端出现了刚才拉的分支,但是本地没有,这时候可以通过git branch 分支名 origin /分支名
来创建本地并关联远程分支,就能看到本地和远端都有了想要的内容
网友评论