今天用SourceTree克隆一個項目,出現(xiàn)了下面的問題
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
于是就開始搜索各種解決辦法,仔細的篩查過,沒有跟我這個錯誤信息是一模一樣的帖子,但是有很多圍繞著
templates not found /usr/local/git/share/git-core/templates
和remote: aborting due to possible repository corruption on the remote side
相近的帖子.一個類似關于out of memory
的解決辦法給了我靈感.總結出這個問題大概率是倉庫太大,無法克隆成功,于是我就采用下面的迂回戰(zhàn)術嘗試了下,先附上過程截圖.
1.我的需求是將遠程倉庫的多個分支的內(nèi)容克隆下來,首先,先克隆master分支上的內(nèi)容,但是只要最近一次提交的內(nèi)容
命令行:
git clone http://xxxxx.git -- depth 1
-- depth 1
就是克隆深度,1代表最近1次提交 ,可以根據(jù)自己的需求更改
如果不想要master上面的內(nèi)容,想指定分支,就用下面的命令行
git clone -b 分支名 http://xxxxx.git -- depth 1
2.克隆成功后進入倉庫,執(zhí)行
git branch -a
查看當前所有分支,我這里看到只有默認的master分支,然而origin還有分支卻看不到,這時就用下面的命令,拉取你想要的遠端分支命令行:
git remote set-branches origin 分支名
命令行:git fetch --depth 1 origin 分支名
3. 遠端分支已經(jīng)有了就關聯(lián)本地分支
執(zhí)行第2步后再
git branch -a
可以看到遠端出現(xiàn)了剛才拉的分支,但是本地沒有,這時候可以通過git branch 分支名 origin /分支名
來創(chuàng)建本地并關聯(lián)遠程分支,就能看到本地和遠端都有了想要的內(nèi)容