用git提测一系列错误:下载报错,提交也报错

版权声明:本文为作者原创,转载请注明出处,联系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

猜你喜欢

转载自blog.csdn.net/dataiyangu/article/details/90055559