如何做网站维护shafow网站是谁做的

张小明 2026/1/16 4:25:08
如何做网站维护,shafow网站是谁做的,企业运营过程中具有控制职能的环节是,沈阳做购物网站电话文章目录一、Git的核心#xff1a;三种对象及其引用二、三种对象如何协作#xff1f;场景 1#xff1a;首次提交场景 2#xff1a;新增文件并提交场景 3#xff1a;删除文件再提交三、那怎么真正“删掉”大文件#xff1f;四、分支#xff08;Branch#xff09;到底是什…文章目录一、Git的核心三种对象及其引用二、三种对象如何协作场景 1首次提交场景 2新增文件并提交场景 3删除文件再提交三、那怎么真正“删掉”大文件四、分支Branch到底是什么五、空间优化的秘密与潜在问题六、结语举个例子有一次我不小心将一个依赖文件夹提交了进去导致仓库大小暴增到几百MB。我赶紧删除模型并重新提交但仓库大小并未缩小。这让我意识到我其实并不真正理解Git是如何工作的。如果你也有过类似的困惑那么这篇文章将用5 分钟带你穿透git commit的表层操作直击 Git 的核心机制——三种对象与引用系统。看完之后你会真正理解为什么删掉文件后仓库体积没变分支到底是什么Git 为何如此高效又可靠写给在日常开发中只记住了Git的常用命令却对底层机制一知半解像我一样的开发者。一、Git的核心三种对象及其引用Git的核心在于三种不可变对象commit、tree和blob。这些对象存储在.git/objects目录中通过哈希值也就是唯一标识相互引用形成一个高效的版本控制系统。Commit 对象每次提交代码时创建记录了变更的快照。它包含提交消息、作者、提交者、父提交parent并指向一个 tree 对象。Tree 对象代表提交时的目录结构包括文件和子目录。它指向 blob 对象或其他 tree 对象。Blob 对象存储文件的实际内容是最底层的对象。一旦创建blob 永不修改或删除。这种引用机制避免了重复存储不变的文件只需引用相同的 blob新变更才创建新 blob从而节省空间。二、三种对象如何协作场景 1首次提交假设你新建一个项目创建一个文件text1.txt内容为Hello Git!然后执行gitaddtext1.txtgitcommit-mcommit one此时Git 会做三件事生成一个 Blob 对象内容Hello Git!哈希值737c...存储路径.git/objects/73/7c...生成一个 Tree 对象表示当前目录结构内容blob 737c... text1.txt哈希值caae...生成一个 Commit 对象指向上述 Tree包含作者、提交者、时间、提交信息哈希值eddf...你可以用以下命令查看这些对象的内容gitcat-file-peddf# 查看 commitgitcat-file-pcaae# 查看 treegitcat-file-p737c# 查看 blob简单理解Blob 存文件内容Tree 存目录结构Commit 存“这次快照是谁在什么时候做的”。场景 2新增文件并提交现在你新增text2.txt内容为New file并提交gitaddtext2.txtgitcommit-mcommit two这时新增一个 Blob169d...存text2.txt新建一个 Tree包含两个条目blob 737c... → text1.txt复用旧 Blob对象blob 169d... → text2.txt新建的 Bolb对象新建一个 Commit指向新 Tree并记录 parent 为eddf...你会发现text1.txt的内容没有变所以 Git 直接复用了原来的 Blob 对象没有重复存储这就是 Git节省空间、高效存储的核心秘密。场景 3删除文件再提交接着你删除text2.txt并提交第三次gitrmtext2.txtgitcommit-mcommit three新的 Commit 会指向一个只包含text1.txt的 Tree但169d...这个 Blob 依然存在于.git/objects/中重要结论一旦 Blob 被创建它就永远不会被自动删除——即使你删掉了对应的文件并提交。因为 Git 的设计哲学是历史不可篡改所有对象永久保留直到被显式清理。这正是开头那个“文件删不掉”的根本原因那个几百 MB 的文件已经被转成 Blob 存入 Git 历史后续提交无法让它消失。三、那怎么真正“删掉”大文件解决方案分两步重写历史移除包含大文件的那次提交比如git filter-repo或BFG Repo-Cleaner清理悬空对象gitreflog expire--expirenow--allgitgc--prunenow--aggressive但需注意重写提交历史所带来的影响比如说团队协作的场景。四、分支Branch到底是什么你可能会问我们天天用的main、dev分支去哪儿了它们也是对象吗不是分支只是一个“指向 Commit 的指针”。在.git/refs/heads/目录下每个分支都是一个文本文件。例如cat.git/refs/heads/main# 输出98ea1234... 即最新 commit 的哈希当你执行git checkout mainGit 只是把HEAD指向这个 Commit。你可以随时让分支指向任意 Commit甚至删除分支其实只是删掉这个指针但 Commit 和它的对象依然存在。五、空间优化的秘密与潜在问题引用机制的核心优势是高效存储。每个 commit 只记录变更不复制整个仓库。例如不变的文件共享 blob新增或修改才生成新 blob。这在大型项目中显著节省空间。然而这也带来问题如开头所述误提交大文件会创建大量 blob即使后续删除blob 也不会自动消失导致仓库膨胀。可以试试使用git reset或git rebase删除包含大文件的 commit使相关 blob 成为“悬空对象”。运行git gc或git prune清理悬空对象真正缩小仓库。预防措施使用.gitignore忽略大文件避免初次提交。六、结语Git 依赖 commit、tree 和 blob 的引用链来管理版本历史。这种设计确保了不可变性和效率但也要求开发者理解其不可逆性。掌握这些基础下次遇到仓库问题时你能轻松诊断和修复。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

建立一个网站的前期资金网站名称怎么起

猫抓浏览器扩展完整指南:轻松掌握网页视频下载与资源嗅探 【免费下载链接】cat-catch 猫抓 chrome资源嗅探扩展 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 还在为无法保存网页中的精彩视频而烦恼吗?猫抓浏览器扩展正是你需要的…

张小明 2026/1/14 21:28:01 网站建设

网站开发的技术支持科技 网站建设

一、适用场景 1、移动语音/视讯 校园、医院、 VoWiFi、无线 IPC、移动护理终端,漫游时若 IP 变化,SIP 会话会掉话或重注册;三层漫游把流量隧道回“原网关”,保证会话不中断。 2、移动扫码支付/POS 商场、超市的无线 POS 机、扫码枪…

张小明 2026/1/11 2:25:25 网站建设

制作搜索类网站东营网站开发招聘

CrystalDiskInfo硬盘健康监测完全使用指南 【免费下载链接】CrystalDiskInfo CrystalDiskInfo 项目地址: https://gitcode.com/gh_mirrors/cr/CrystalDiskInfo 在数字化时代,硬盘故障可能导致无法估量的数据损失。CrystalDiskInfo作为一款专业的硬盘健康监测…

张小明 2026/1/10 23:52:42 网站建设

建设校园网站的背景及意义什么网站专做外贸

数字化浪潮下,企业对数据协作的需求已从简单的表格记录升级为"实时同步、权限管控、系统集成"的复合型需求。传统Excel的版本混乱、数据孤岛问题日益凸显,而Airtable等SaaS工具的年度订阅费动辄数万元,还存在数据主权归属的隐患。 …

张小明 2026/1/10 21:01:02 网站建设

手机建网站详细步骤高端建站价格

阿里云ECS部署IndexTTS2全过程记录:附GPU驱动安装避坑指南 在智能语音应用日益普及的今天,越来越多开发者希望将高质量的文本转语音(TTS)能力集成到自己的项目中。然而,本地机器算力有限、环境配置复杂等问题常常成为拦…

张小明 2026/1/11 8:11:37 网站建设

建设商城网站价格网站改版被降权

在MapReduce框架中,调节reduce端缓冲数据拉取大小主要涉及以下参数配置:核心参数mapreduce.reduce.shuffle.input.buffer.percent 该参数控制用于存储从map端拉取数据的缓冲区占JVM堆内存的比例,默认值为0.7(即70%)。 …

张小明 2026/1/11 22:47:11 网站建设