版权声明:本文为作者原创,转载请注明出处,联系qq:32248827 https://blog.csdn.net/dataiyangu/article/details/90055559
文章目录
建议:直接用方法二
git clone 到本地报错
方法一
➜ measure git clone https://xxxx.git
正克隆到 'TSB_backend_dev'...
error: RPC failed; curl 18 transfer closed with outstanding read data remaining
remote: Counting objects: 8176, done.
fatal: 远端意外挂断了bjects: 55% (2742/4939)
fatal: 协议错误:坏的包头
//坏的包头英文:protocol error: bad pack header
经网上查阅,设置如下
➜ measure git config --global pack.windowMemory "100m"
➜ measure git config --global pack.packSizeLimit "100m"
➜ measure git config --global pack.threads "1"
//问题在于用http提交有上传大小限制,修改传输大小限制使用 git config --global http.postBuffer 52428800
➜ TSB_backend_dev git:(javaagent) git config --global http.postBuffer 52428800
没有解决问题
因为文件太大,所以下载中断
通过
//将clone的层数定位在第一层,只克隆最近一次commit
git clone 仓库地址 --depth 1
//但是这种方法只能克隆默认分支
//可以通过
git clone -b 分支名 仓库地址 --depth 1
//或者
$ git remote set-branches origin 'remote_branch_name'
$ git fetch --depth 1 origin remote_branch_name
$ git checkout remote_branch_name
➜ measure git clone -b xxx https://git.xxxx.git --depth 1
正克隆到 'xxx'...
remote: Counting objects: 26, done.
remote: Compressing objects: 100% (16/16), done.
remote: Total 26 (delta 1), reused 0 (delta 0)
展开对象中: 100% (26/26), 完成.
方法二
通过git clone ssh的方式
配置ssh
mac 系统开始就已经为我们安装了ssh 如果没有安装,
首先安装打开终端:
$ ssh -v
查看ssh版本
usage: ssh [-1246AaCfgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec]
[-D [bind_address:]port] [-e escape_char] [-F configfile]
[-I pkcs11] [-i identity_file]
[-L [bind_address:]port:host:hostport]
[-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port]
[-R [bind_address:]port:host:hostport] [-S ctl_path]
[-W host:port] [-w local_tun[:remote_tun]]
[user@]hostname [command]
这个表明ssh已经安装.
如果没有安装,在终端输入以下命令
$ ssh-keygen -t rsa -C "[email protected]"
一路回车确定下就安装好了。
生成在当前用户名下会有一个.sh文件。
查看 .ssh
➜ TSB_backend_dev git:(javaagent) ls -a ~/.ssh
. .. .DS_Store id_rsa id_rsa.pub known_hosts
通过搜索目录
id_rsa
id_rsa.pub
打开 id_rsa.pub文件 里面就有需要的ssh key。
在终端输入命令打开id_rsa.pub
vim ~/.ssh/id_rsa.pub
将.pub中的多有内容拷贝出来填到git账户里面就ok了
关于ssh感谢:https://meilinzi123.iteye.com/blog/2377846
git push报错
报错如下
➜ TSB_backend_dev git:(javaagent) git push
枚举对象: 10, 完成.
对象计数中: 100% (10/10), 完成.
压缩对象中: 100% (5/5), 完成.
写入对象中: 100% (7/7), 3.56 MiB | 23.55 MiB/s, 完成.
总共 7 (差异 1),复用 0 (差异 0)
error: RPC failed; HTTP 413 curl 22 The requested URL returned error: 413 Request Entity Too Large
fatal: 远端意外挂断了
fatal: 远端意外挂断了
Everything up-to-date
方法一
//问题在于用http提交有上传大小限制,修改传输大小限制使用 git config --global http.postBuffer 52428800
➜ TSB_backend_dev git:(javaagent) git config --global http.postBuffer 52428800
没有用~
方法二
用ssh的方式提交
git remote set-url origin ssh://git@xxx.git
可是还是报错
➜ TSB_backend_dev git:(xxx) git push
枚举对象: 10, 完成.
fatal: protocol error: expected old/new/ref, got 'shallow 97d92d8375dfd6c38c
Gogs: Internal error10)
对象计数中: 100% (10/10), 完成.
压缩对象中: 100% (5/5), 完成.
fatal: 远端意外挂断了
fatal: 远端意外挂断了)
因为前面解决的时候可能用的 --depth 1 值下载了最近的一次提交
可以通过git fetch --unshallow来获取完整库
➜ TSB_backend_dev git:(javaagent) git fetch --unshallow
remote: Counting objects: 77, done.
remote: Compressing objects: 100% (43/43), done.
remote: Total 60 (delta 11), reused 0 (delta 0)
展开对象中: 100% (60/60), 完成.
➜ TSB_backend_dev git:(javaagent) git push
枚举对象: 10, 完成.
对象计数中: 100% (10/10), 完成.
压缩对象中: 100% (5/5), 完成.
写入对象中: 100% (7/7), 3.56 MiB | 7.40 MiB/s, 完成.
总共 7 (差异 1),复用 0 (差异 0)