http.postBuffer默认单位为B,所以500MB=10241024500
注意:我这里设置的是500MB(大家可以根据自己的需要设置)。
# 全局配置
git config --global http.postBuffer 524288000
或
# 当前仓库配置
git config http.postBuffer 524288000
查看 http.postBuffer数值是否设置成功:
# 查看当前的Git配置
git config --list
注: 但是可能有些人设置不会生效,具体咋回事我也不清楚
但是呢, http.postBuffer不好使也别慌
不要慌不要慌,太阳下山有月光,泡面吃完还有汤
Git LFS是基于Git的
.gitattributs
配置文件的特性,用 smudge过滤器基于 指针文件寻找大文件内容, 用 clean过滤器在对大文件改动时,创建指针文件的新版本。同时还用 pre-push钩子将大文件上传到Git LFS服务器, 即在 git-push时, 如果提交中包含被LFS跟踪的大文件,pre-push钩子会检测到,并执行上传Git LFS服务器的动作。
我用的windows系统就直接开搞了,其他系统的去看官方吧GIT LFS
git lfs install
这个命令会自动改变Git配置文件 .gitconfig,而且是全局性质的,会自动在配置文件中增加如下配置:
[filter “lfs”]
clean = git-lfs clean – %f
smudge = git-lfs smudge – %f
process = git-lfs filter-process
required = true
git lfs track "*.mp4"
# 或者具体到某个文件
git lfs track "1.png"
git lfs track "demo.lfs"
这个命令会更改仓库中的 .gitattributes配置文件(如果之前不存在这个文件,则会自动新建):
查看如下:
$ cat .gitattributes
*.svg filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
// 查看现有的文件追踪模式(查看使用)
git lfs track
// 显示当前跟踪的文件列表(查看使用)
git lfs ls-files
git lfs untrack "1.png"
git add .gitattributes
git commit -m "add .gitattributes"
使用git-lfs会生成.gitattributes文件,这个文件需要被上传到远程仓库
在上传.gitattributes文件之前不要commit被跟踪的大文件到git,会导致大文件上传失败。
git lfs uninstall
也可以直接打开.gitattributes修改里面的内容。
#允许提交.mp4为后缀的大型文件
*.mp4 filter=lfs diff=lfs merge=lfs -text
如果一个仓库中包含LFS内容,但是在推送时不想推送这类文件,只要加上 --no-verify
选项就行
// --no-verify选项告诉 git push完全跳过 pre-push钩子。
git push --no-verify
被LFS管理的文件,本地仓库中保存的内容实际上是指针文件,其格式类似于下面这样:
git show HEAD:2.svg
// version表示LFS的版本
// oid表示文件对象的唯一hash值
// size表示文件的大小
version https://git-lfs.github.com/spec/v1
oid sha256:158213f90f8b27012034c6f58db63e1861b12aa122d98910de311bf1cb1e50a0
size 14651
注: LFS是面对企业级的收费项目,若你得团队有钱那就买,肯定是花钱越多空间越大
如果是自己用,那就找一些免费的git仓库我这里用的CODING它内置lfs,好像花钱可以扩充空间,没咋注意,反正能玩