git上传大文件-http无法满足

问题:git在使用过程中上传大的项目到gitlab上无法实现,会出现如下错误:

git上传大文件-http无法满足_第1张图片

























网上有博客说可以使用git config http.postBuffer 1024000000 这样的方式试了过后发现根本行不通,http每次上传文件大小被限制,所以无法解决根本问题。


解决方案:经查询资料发现可以使用git官方为开发者使用的git ssh方式传输文件,从而实现git上上传占用空间较大的项目,实现方式主要分为以下几个步骤。

一.生成sshkey。

1.生成sshkey的方法:通过在本地项目的git仓库中,使用git Bash打开窗口,在命令行中输入


$ cd ~/.ssh  (进入到ssh的目录)

$ ls  id_dsa  (列出ssh公钥 IP白名单)


会出现如下生成的公钥

id_dsa.pub    id_dsa    known_hosts config


如果有上面公钥不需其他配置,若没有需要先生成相应的公钥,生成方式如下:


$ ssh-keygen -t rsa -C "[email protected]"  (生成公钥 )输入完成提示如下

# Creates a new ssh key using the provided email

# Generating public/private rsa key pair.   

# Enter file in which to save the key (/home/you/.ssh/id_rsa):


此时直接回车就可以,然后要求输入密码,提示如下


Enter passphrase (empty for no passphrase): [Type a passphrase]  

# Enter same passphrase again: [Type passphrase again]


输入完成后确认密码即可完成公钥的生成,可通过如下指令完成公钥的查询。


$ cat ~/.ssh/id_rsa.pub 


ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAklOUpkDHrfHY17SbrmTIpNLTGK9Tjom/BWDSU GPl+nafzlHDTYW7hdI4yZ5ew18JH4JW9jbhUFrviQzM7xlE LEVf4h9lFX5QVkbPppSwg0cda3 Pbv7kOdJ/MTyBlWXFCR+HAo3FXRitBqxiX1nKhXpHAZsMciLq8V6RjsNAQwdsdMFvSlVK/7XA t3FaoJoAsncM1Q9x5+3V 0Ww68/eIFmb1zuUFljQJKprrX88XypNDvjYNby6vw/Pb0rwert/En mZ+AW4OZPnTPI89ZPmVMLuayrD2cE86Z/il8b+gw3r3+1nKatmIkjn2so1d01QraTlMqVSsbx NrRFi9wrf+M7Q== [email protected]



二.配置sshkey到gitlab中


生成公钥以后需要将生成的公钥配置在gitlab的管理平台当中,配置的位置在gitlab的个人中心的位置,如下图所示:

git上传大文件-http无法满足_第2张图片


上面的public-key就是刚刚配置好的,可使用ADD SSH KEY添加多个sshkey。


三.修改远程分支的地址

使用 git remote set-url origin ssh://[email protected]:10022/liuchao/RiceApp.git 这样的指令将远程分支的地址从http协议切换到ssh协议。

切换远程仓库以后,进行git push clone pull操作是可能出现IP不在白名单的问题异常,这是需要将出现问题处显示的未加入白名单的ip和公钥加入到known_hosts文件中。如下所示:


未信任到白名单的IP:[172.16.1.39]:10022

生成的公钥:ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDTyG8OFUN3bJ7b/OEziq1OlVjv7rXSjBkDaA1C3TmuiQgfFzNgpgFo/Qm/0DYVlcTn+H3RGgtY/7VyikyguWDLnsfFOEv/Z4Oj8A2jkc7XBxKGZA7PlXxTkzu6Z+EbLYD9sj+ERg7Y/VFIhJUjpFcyVLC6J22G+uMPj7bdRfN+hobN2f8KmvB8pl+2G2VcSGNubGJCHisbTpft/YE2iYw0f95GF3Ufd+Tg7rdLFei+QpjeuOe9/sr5X0q8YlLvX2dUmSSMn6joA3hIgfSIWpFrQm/5a34TdXVQWCZeLleON/tpSxz1pDg2i0u3vYXFBDeaLsw/7dHeDcgCBWdNwLth [email protected]


结合后的内容:[172.16.1.39]:10022 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDTyG8OFUN3bJ7b/OEziq1OlVjv7rXSjBkDaA1C3TmuiQgfFzNgpgFo/Qm/0DYVlcTn+H3RGgtY/7VyikyguWDLnsfFOEv/Z4Oj8A2jkc7XBxKGZA7PlXxTkzu6Z+EbLYD9sj+ERg7Y/VFIhJUjpFcyVLC6J22G+uMPj7bdRfN+hobN2f8KmvB8pl+2G2VcSGNubGJCHisbTpft/YE2iYw0f95GF3Ufd+Tg7rdLFei+QpjeuOe9/sr5X0q8YlLvX2dUmSSMn6joA3hIgfSIWpFrQm/5a34TdXVQWCZeLleON/tpSxz1pDg2i0u3vYXFBDeaLsw/7dHeDcgCBWdNwLth [email protected]


四.通过以上过程可以将大容量的代码传输到gitlab服务器上。




你可能感兴趣的:(git)