ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

Git:LFS、LazyGit、Gitea、Gogs、GitButler、Foregjo、FastGithub、Tangled、Codeberg、CNB

2026/8/8 15:14:08 拓冰建站 浏览量
Git:LFS、LazyGit、Gitea、Gogs、GitButler、Foregjo、FastGithub、Tangled、Codeberg、CNB 概述有没有想过或算过你使用Git有几年啦如果你还是一个Git新手请参考Git使用笔记Git TagGit Cherry PickGit clone/pull/push需要输入密码解决方法GitHub使用技巧如果不是请想一想这么多年过去对于Git的使用是不是还停留在那么几条命令行。事实上鄙人于2015~16年接触Git自认为是一个比较敏感的技术宅但还是有很多新特性或功能不熟悉、没用过甚至没听过。真的是知道的越多越发现知道的越少。本文汇总一些Git进阶玩法可能停留在概念和名词层面。Git LFS经常在HF或ModelScope官网等平台看到git lfs命令行。实际上HF和MS的远程模型仓库就是一个由Git LFS管理的Git仓库。LFS是Large File Storage的缩写即大文件存储。官网GitHub。基于Golang实现通过对Git客户端进行扩展的方式集成并兼容原生Git客户端。Git LFS为解决大文件托管的效率问题提供五大特性更大支持GB级别的大文件版本控制更小让Git仓库空间占用减小更快仓库的克隆和拉取更快透明Git使用上对用户完全透明兼容权限控制上完全兼容兼容Codeup权限控制。安装Git LFS已集成在Git for Windows中直接下载和使用最新版本Git即可官网下载可执行程序如Windows平台的git-lfs-windows-v3.7.1.exe在Git仓库下执行命令# 执行下述命令自动新增/编辑.gitattributes文件gitlfs track*.pt# 或直接编辑.gitattributesvim.gitattributes# 加入Gitgitadd.gitattributes# 常规Git操作git add、commit、push.gitattributes文件示例*.pt filterlfs difflfs mergelfs -text撤销LFS跟踪gitlfs untrack*.ptgitrm--cached*.pt--depth经常看到类似于git clone --depth 2 https://github.com/jesseduffield/lazygit.git这种用法即--depth N。Git中用于实现浅克隆shallow clone的参数只克隆仓库的最新N1次提交而不下载完整提交历史。如下图N2git log只能看到3次commit即N1有些资料说N次是错误的。git branch -a也只能看到3个分支对于Lazygit这种大型项目显然不可能只有一个远端分支用途和优势节省时间和带宽无需下载整个Git历史尤其是大型项目历史可能达几百MB甚至GB只拉取当前代码快照节省磁盘空间本地只保留一个浅层历史适合只需要当前代码而不需要历史记录的场景如CI/CD、临时构建、只读使用等加快克隆速度对于只需要构建或查看最新代码的用户非常高效。限制默认情况下无法访问历史提交、无法切换到旧分支除非该分支的最新提交也在浅层范围内不能执行某些依赖完整历史的操作如git log只显示N1条记录git blame可能受限。如果想追溯提交历史可通过git fetch --unshallow完整克隆或git fetch --depthN追加N次提交。Git ResetGit Reset可将当前Git分支HEAD移动到指定提交状态并支持使暂存区和工作目录与之同步。git reset命令包含三种模式--soft移动HEAD指针。仅移动HEAD的指向目标暂存区和工作目录内容保持不变。例如git reset --soft HEAD~将指针回退一个提交--mixed更新暂存区默认模式。将HEAD指向的提交状态同步到暂存区但保留工作目录的现有内容--hard同步工作目录。将移动HEAD指针、重置暂存区并使工作目录完全匹配目标提交。执行git reset --hard HEAD~后指针位置、暂存文件和工作文件均将回退到旧提交状态。Git WorktreeGitHubGitHub也有很多新功能、特性。CodespaceLazyGit一款开源GitHub67.9K Star2.3K Fork的Git终端界面工具使用Go语言编写可直观地将复杂的Git操作可视化让开发人员不用再去记忆那些繁琐的Git命令。可通过界面操作的方式快速地进行拉取分支、切换分支、提交变更等操作。大大提高代码管理的效率。功能指定行暂存可在选定的行上按空格键将其暂存或按v键开始选择一列行同时还可按a选择当前行的所有内容重置工作区清除某个未提交的内容可使用shiftd打开重置菜单然后选择nuke选项自定义命令根据个人习惯工作树可同时运行多个分支无需切换分支时存储使用w键就可从所选分支工作树切换到该分支撤销可使用z键撤销上一个操作然后使用ctrlz进行重做提交图支持所有提交以图表的形式展现非常方便查看内容使用和_循环切换屏幕来显示提交图表并且会有颜色区分对比两次提交支持不同的两次提交进行内容比对使用shiftw选中某个分支然后标记这个分支然后再选择其他分支与这个分支进行diff清晰、模块化的架构通过不同的层分离关注点实战提供各种平台的多种安装方式scoopinstalllazygit chocoinstalllazygit brewinstalllazygitsudoaptinstalllazygitGitea官网开源GitHub52K Star6.2K Fork在线体验也可通过SaaS形式使用。功能特性轻量高效性能爆表Go语言编写的轻量级服务对服务器资源占用极小这让自建私有Git变得前所未有的简单。功能齐全开箱即用包括代码仓库、PRPull Request、Issue工单、Wiki等在内的所有核心功能。无需额外配置开箱即用。数据主权安全可控作为自托管工具所有代码都存储在个人服务器上数据不上云。实战安装使用仓库创建、管理、用户创建、邀请协作使用Issue来跟踪项目进度使用Wiki来编写项目文档使用Pull Request来进行代码合并。Gogs官网开源GitHub47.2K Star5.1K Fork极易搭建的自助Git服务。官方提供在线体验平台需注册方能使用。GitButler官网开源GitHub16.9K Star708 Fork的Git客户端引入虚拟分支Virtual Branches概念允许开发者同时工作在多个功能分支上而无需物理切换分支。技术栈Rust、Tauri可用于为所有主要桌面平台构建微小的、极速的二进制文件的框架、SvelteUI框架。功能清单虚拟分支解决问题传统Git操作需频繁切换分支或git stash保存临时改动导致上下文切换成本高功能亮点并行开发在同一工作目录中创建多个虚拟分支每个分支独立管理文件改动无需物理切换分支智能归属代码更改自动关联到对应虚拟分支用户可通过拖拽将文件或代码片段分配到不同分支实时冲突检测当多个虚拟分支修改同一文件时界面高亮冲突区域并提供解决建议避免合并时才暴露问题无缝转真实分支虚拟分支可一键转换为标准Git分支单独推送到远程仓库或创建PR。智能提交基于OpenAI API、或本地模型分析代码差异自动生成语义化提交信息自动创建描述性分支名如fix/login-button-alignment拖放式提交管理通过拖拽操作撤销、合并或修改提交记录替代复杂git rebase -i命令操作时间线记录所有操作历史支持回溯和撤销降低误操作风险GitHub深度集成一键认证登录直接管理PR、查看分支状态自动生成SSH密钥并上传至GitHub简化配置流程。多账户管理支持同时关联多个GitHub账号方便跨项目协作工作流优化紧急中断处理开发功能时发现Bug可直接在新虚拟分支修复并独立推送无需提交半成品代码跨分支代码测试直接在工作目录应用他人的远程分支改动快速验证问题探索性编程创建临时虚拟分支尝试不同方案保留有效代码路径。Foregjo官网开源codeberg3K Star523 Fork官方提供在线体验平台需注册方能使用。FastGithub一款开源GitHub491 Star150 Fork小巧的便携小工具无需安装解压开箱即用。功能提供域名的纯净IP解析提供IP测速并选择最快的IP提供域名的tls连接自定义配置谷歌的CDN资源替换解决大量国外网站无法加载js和css的问题。FastGithub为每台不同的主机生成自颁发CA证书保存在cacert文件夹下。客户端设备需要安装和无条件信任自颁发的CA证书请不要将证书私钥泄露给他人以免造成损失。工作原理在本地电脑上创建一个安全的问路服务而不是将流量发送到某个服务器隐私和安全方面可相对放心。实战从GitHub Release页面下载fastgithub-win-x64.zip解压缩双击FastGithub.UI.exe即可。实测结果之前没有开启代理打开GitHub很慢关闭代理并使用FastGitHub速度确实快很多几百毫秒响应速度。不使用代理git clone也有将近10M的速度。要知道无良房东没算在房租里的宽带不过100M下载速度还需要除以10和使用代理时的响应速度几乎没有区别此外还可通过Docker Compose安装gitclone https://github.com/creazyboyone/FastGithub.gitcdFastGithubdockercompose up-dTangled官网一款基于AT Protocol协议构建的Git社交协作平台。基本概念Knot节点小型无头(headless)服务器可用于托管Git仓库和相关元数据可简化Git操作每个Knot都能独立托管仓库也能与其他节点互联形成一个开放的代码协作网络。可部署于Raspberry Pi、个人NAS、服务器上可单人使用也可供多人共享。DIDDecentralized ID去中心化标识符功能特性轻量级Git仓库托管使用Knots在个人基础设施上托管Git仓库可添加好友到Knots或邀请协作者加入个人仓库采用细粒度的基于角色的访问控制进行保护使用SSH进行推送和拉取操作。改进的拉取请求模型直观高效的基于轮次的拉取请求流程支持轮次间的差异比较。使用Jujutsu的变更ID堆叠拉取请求。粘贴git diff或git format-patch即可快速进行变更推送。使用Spindle在个人基础设施上运行流水线。Spindle是一款轻量级的Cl运行器原生支持Nix进行包管理可轻松扩展以支持不同的执行后端。实战注册点击个人头像新建string和Git Snippet功能定位类似用于记录和存储代码片段。下面创建一个Repo查看Repo和Git Repo类似不过高度精简功能简陋毕竟目前还是alpha版本。Codeberg官网基于Foregjo、类似于GitHub、但免费代码托管平台。CNBCloud Native Build简写官网理念一切皆为代码官方文档技术声明式的构建环境通过声明构建环境可确保任务在特定的环境中进行构建避免由于环境差异而导致的问题并提供可靠的构建过程声明式的构建缓存当缓存声明为copy-on-write模式时可实现缓存的写时复制在并发场景下无需再担心缓存读写冲突问题Docker运行时使用Docker技术来提供一个环境以便执行特定的任务使任务的执行环境更加可控和可靠插件将通用能力抽离为Docker插件通过Docker生态进行高效分发开发者之间相互帮助去中心化的协作。按需快速获取资源通过runner.cpus按需声明需要的CPU资源最高可达64核。云原生开发基于云原生构建的远程开发解决方案借助读秒克隆技术只需一不小心点击云原生开发按钮短短几秒工作区便准备就绪远程接入即可进行编码工作。启动速度看起来飞快其实一点也不慢。读秒克隆技术基于OverlayFS的git-clone-yyds可在数秒内完成代码准备使得开发人员能够更快地获取代码。哪怕是100GB以上的超大仓库也能秒级准备在高并发场景下更是快到离谱。