新建React Native应用推送至GitHub/GitLab时出现broken pipe错误如何解决
错误原因
- 核心原因:
react-native init生成的初始项目如果未正确配置.gitignore,会将node_modules目录纳入提交范围,单次推送体积远超Git服务端SSH连接默认的单次传输上限,触发连接中断抛出broken pipe错误。 - 次要原因:本地Git配置的SSH缓冲区太小,无法适配React Native初始项目的正常提交体积,即便已经配置了
.gitignore,初始模板文件+依赖声明文件的整体体积也远大于普通小型项目,也可能触发传输中断。 - 分支匹配问题:新创建的远程空仓库默认分支多为
main,如果本地默认推送的是master分支,分支不匹配也可能在部分场景下触发连接异常中断。
解决方案
按优先级执行以下操作即可解决问题:
1. 配置标准.gitignore文件
在项目根目录创建/更新.gitignore文件,添加React Native官方标准排除规则,确保不会提交不必要的大体积文件:
node_modules/ npm-debug.log yarn-error.log ios/build/ android/build/ android/app/build/ .DS_Store *.pbxuser !default.pbxuser *.mode1v3 !default.mode1v3 *.mode2v3 !default.mode2v3 *.perspectivev3 !default.perspectivev3 xcuserdata *.xccheckout *.moved-aside DerivedData *.hmap *.ipa *.xcuserstate android/.idea/ .idea/
配置完成后执行以下命令重置本地提交:
git rm -r --cached . git add . git commit -m "chore: 初始化项目提交"
2. 调大Git SSH传输缓冲区
执行全局配置命令,将SSH单次传输缓冲区上限调整为500M,适配大体积项目的推送需求:
git config --global ssh.postBuffer 524288000
3. 匹配本地与远程分支名
如果远程仓库默认分支为main,执行以下命令修改本地分支名后推送:
git branch -M main git push -u origin main
如果需要推送至master分支,可在远程仓库设置中将master调整为默认分支后再执行推送。
内容的提问来源于stack exchange,提问作者Prince Mittal
相关产品推荐
相关产品推荐

