文章目录
前言
AI横行,好久没做内容整理了,这不一转眼又到了月底,没挤出时间来做这部分,所以今天只能临时抱佛脚,赶紧用AI生成一篇,可是转念一想这样的意义何在,那样的话我这总结岂不是毫无用处了,所以还是算了,随便写一写也算不失本心,所以就把上周解决的一个问题拿来了
推送git库报错
看这个报错信息我已经见到很多次了
! [remote rejected] dev -> dev (pre-receive hook declined)
! [remote rejected] dev_2022 -> dev_2022 (pre-receive hook declined)
常规解决方案
之前的做法就是先推送lfs,再推送主库
git lfs push --all $reposurl
git push origin --all $reposurl
但是这次遇到的问题是推送lfs的时候,每次进度到1.2G就卡住不动,不论是客户端服务器都没找到有用的报错
进阶解决方案
经过探索找到以下方案:
先关闭服务器端LFS检查,客户端推送时不推送LFS,将所有分支先推上去,再处理lfs的问题,实践后可以
怎么关闭gitlab服务器上的lfs检查
● 两种方式,任选其一:
-
方式一:项目级别关闭(推荐,影响范围小)
GitLab Web 界面 → 进入 xxxx/yyyy 项目 → Settings → General → Visibility, project features, permissions → 把 Git Large File Storage (LFS) 开关关掉 → Save changes
-
方式二:全局关闭
GitLab Web 界面 → Admin Area(管理中心) → Settings → General → Visibility and access controls → 取消勾选 Allow
projects to use Git LFS → Save changes
关掉后执行推送,推完再用同样的路径打开即可:
git push --all origin git push --tags origin # 如果还有 tags 的话
关闭客户端检查的可以可以加--no-verify参数(已试过)或者GIT_LFS_SKIP_PUSH=1变量(还没试)
关闭lfs和务端客户端的配置后可以成功推送,至于后面的lfs,历史要还是不要,lfs用还是不用,根据具体需要处理吧
总结
- 在遍地AI的今天,古法编程已经成了非物质文化遗产
- lfs推送不上去就想办法去掉它,可以同时服务器和客户端的检查,把主库推送上去再考虑lfs
花开堪折直须折,莫待无花空折枝