最近要将一个项目托管到Git上面去,push 的时候老是报错,查阅资料后得出以下解决办法:
对于node_modules文件夹下的依赖包不用上传,还有.idea等编译器自动生成的文件以及大量的视频、图片等资源不用托管到Git上,否则push的时候会报错,而且上传时间也会变得很长,影响工作效率。
这个时候可以在项目根目录下创建.gitignore文件,在文内写明需要git忽略的文件,格式如下:
#设置哪些文件该过滤
node_modules/ #表示过滤这个文件夹
*.zip #过滤zip后缀文件
demo.html #过滤该文件
#反向操作,设置哪些文件不该过滤
!src/ 跟踪该文件夹
!*.js 跟踪java源文件
!index.html 跟踪该文件
注意:如果是在已经建立本地仓库的前提下,再创建该忽略文件,会导致忽略无法生效,原因是本地仓库中需要忽略的文件没有被删除。我当时是吧.git文件夹给删除了,重新建立本地仓库,但是也没能解决问题。查阅资料得如下解决办法:
git rm -r --cached . //依照.gitignore文件删除本地仓库的多余文件
git add . //重新添加
git commit -m 'update .gitignore' //重新commit
此外,在查阅资料的过程中,发现git上传对于单个文件的大小有限制,大于100M的文件不给上传,如果有特殊需求需要托管大文件,可以采用如下办法:
git lfs install //安装lfs
git lfs track "*.pdf" //使用lfs跟踪需要管理的大文件,也可以直接编辑.gitattributes文件
//然后走常规流程
git add yourLargeFile.pdf
git commit -m "Add Large file"
git push -u origin master
git lfs 官方文档:https://git-lfs.github.com/
当然git有免费使用的大小,一个G,超过了要付费