国内免费git仓库及git lfs大文件存储方案 (LFS)使用

编程入门 行业动态 更新时间:2024-10-06 12:25:50

国内免费git<a href=https://www.elefans.com/category/jswz/34/1770040.html style=仓库及git lfs大文件存储方案 (LFS)使用"/>

国内免费git仓库及git lfs大文件存储方案 (LFS)使用

Git LFS 全名 Git Large File Storage,是Github带头在2015年推出的解决方案。

Git仓库大了怎么办?
文件大了不敢放?
音视频担心占用空间?
GitHub拉代码慢?

顺手广告目前国内的2款免费仓库:

  1. 腾讯的“腾讯工蜂”(支持LFS)
    传送门:/
  2. 阿里的“云效-代码托管”(不支持LFS)
    传送门:/

皮哥带你快速开始,三步搞定

一、下载并安装Git LFS拓展

  • Windows / Linux 安装包

GIT LFS下载:官网下载页
注意:Windows用户的Git客户端推荐使用2.16+的版本,如果版本太低可能无法使用lfs

  • Windows / Cygwin 安装

根据安装向导安装下载的 .exe 包后,启动一个新的cmd命令行窗口;执行以下命令:
git lfs install

  • BSD / Linux

下载完压缩包后,打开命令行进入下载文件所处的目录,并执行以下命令:
tar xf git-lfs-.tar.gz
cd git-lfs-

sudo ./install.sh
也可使用内置支持Git LFS的客户端,例如SourceTree

  • Mac

brew install git-lfs
git lfs install

二、初始化Git LFS

执行命令:git lfs install PS:其实上面已经做过,再次执行会提醒,略过此步骤。。。

三、应用lfs(从下面的1、2、3、4选择适合自己的情况继续阅读)

  1. 拉取远程git仓库项目

转到文章末尾查看:备用2、获取仓库

  1. 本地新开项目,需提交至git仓库

在远程git控制台上创建项目,复制其仓库地址
进入本地项目文件夹,打开git base窗口,windows尽量不要用cmd(有些命令不支持)
git init
git remote add origin 仓库地址
转到文章末尾查看:备用1、配置想要加入LFS托管的文件规则(一定要先执行这一步,否则还得删库从头再来一遍)
git add .
git commit -am"皮哥wangji5850提醒你,此处是注释信息"
git push -u origin master

以后就正常的编辑本地文件,然后 git add .,git commit,git push即可

  1. 本地已存在文件夹但无git仓库,需提交至git仓库

同2.的操作;git push的时候,会看到Uploading LFS objects,说明引入OK。By the way,腾讯工蜂的速度可以的!大赞。有种feeling叫:借问寂寞何处了,隔壁老王帮你忙~~~

  1. 本地已有git项目切换至新git仓库

进入本地项目文件夹,打开git base窗口,windows尽量不要用cmd(有些命令不支持)
git status 确定是否还要提交文件到旧仓库
git remote set-url origin 新仓库地址 (这里有其他remove、add命令,依据个人喜好使用。)
转到文章末尾查看:备用1、配置想要加入LFS托管的文件规则(一定要先执行这一步,否则还得删库从头再来一遍)
git add .
git commit -am"皮哥wangji5850提醒你,此处是注释信息"
git push -u origin master


恭喜你,lfs成功引入。


备用1、配置想要加入LFS托管的文件规则

如果你无需使用git lfs,请返回,不要往下看

git lfs track “.png" ".jpg” “.gif" ".psd” “.sketch" ".xls” “.xlsx" ".rar” “.zip" ".pdf”
git lfs track (用来检查是否track成功,如下图代表OK)

例如:
UI设计稿通常会比较大,我们将目录下所有的. “.png" ".jpg” “.gif" ".psd” “.sketch" ".xls” “.xlsx" ".rar” ".zip" ".pdf"文件添加,使其被LFS托管;这样就不会占用版本库大小:

备用2、获取仓库

如果自己的相关工作不涉及到被 Git LFS 所管理的文件的话,可以选择只获取 Git 仓库自身的内容,而完全跳过 LFS 对象的获取。(同样使用于其他 git 命令,如 checkout, reset 等。)

  • 只clone仓库本身而不获取任何 LFS 对象

GIT_LFS_SKIP_SMUDGE=1 git clone 仓库地址

git -c filter.lfs.smudge= -c filter.lfs.required=false clone 仓库地址

  • 获取master分支所有文件

git clone 仓库地址

注意:如果本地没有安装git lfs且只clone了仓库本身,git pull只能获取仓库本身而不获取任何 LFS 对象

  • 获取所有分支的所有文件

git clone xxx
git branch -r | grep -v '\->' | while read remote; do git branch --track "${remote#origin/}" "$remote"; done
git fetch --all
git pull --all

  • 获取当前 commit 下包含的 LFS 对象的当前版本

git lfs fetch
git lfs checkout
或 git lfs pull

备用3、暂无

ps:鉴于个人经验有限,所有观点,如有异议,请直接回复讨论(请勿发表攻击言论)。
加入QQ群209952809(需回答问题,答案为csdn);群聊更快解决问题,更happy。

扩展阅读:LFS提升篇


本地已经提交过一个或多个包含大文件的commit

如果本地已经提交过包含大文件的commit,如下图:

请使用 git reset --mixed 回退到未包含大文件的前一个commit点。示例中add txt这个commit包含了大文件,所以要回退到上一个commit。 (只提交了一个commit,可以直接git reset --mixed HEAD^;如果不清楚哪个commit包含大文件,可以git reset --mixed origin/master,示例中为master。)

注意:最多回退到origin/master,再往前,push就会引起冲突了。

如何确定需要跟踪的文件后缀?(windows环境请用git自带的Git Bash,示例是查找超过1M的文件)

进行LFS跟踪:如果查找的大文件后台是.jar,直接 git lfs track “.txt"。(跟踪多种后缀:git lfs track ".png” “*.jar”)

注意:一定要先track再add、commit,如果没安装过LFS,请查看安装指南。

再进行git add和git commit操作。使用 git lfs ls-files 确认一下,是否已经track LFS对象。(如果ls-files列表为空,说明没track上)

这个时候能正常push了,push时可以看到 Uploading LFS objects字样。(如果LFS对象没push上,可以尝试git lfs push)

本地全部历史都需进行LFS转换

如果项目是从外部导入或从SVN导入的,本地全部历史都需进行LFS转换,且需保留历史的,请使用以下方式:

如上图,有几个commit包含超过1M的pdf和jar文件,直接push工程会被拦截导致报错。

如何知道全部的commit历史中哪些文件过大?必须使用(git-lfs/2.7.1及以上版本) git lfs migrate info --above=“1 MB” --everything --top 10

对这个项目的全部分支的历史记录进行LFS对象转换,使用 git lfs migrate import --include=".jar,.pdf" --everything

确保lfs对象已跟踪后,推送到远端。(push全部可以 git push origin --all git push origin --tags,如果还不成功尝试git lfs push)

注意:LFS对象转换会改写历史记录(即commit sha1会发生变化),再更新原(github或svn)项目时会产生大量冲突。
只适用一次迁移的情形,不适用github或svn和工蜂并行使用。(以后还有更新github或svn,需要重新clone一份,再做一次git
lfs migrate)

更多推荐

国内免费git仓库及git lfs大文件存储方案 (LFS)使用

本文发布于:2024-03-14 00:08:44,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1735190.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:仓库   大文件   方案   国内   lfs

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!