呜啦!日常碎碎念,偶尔掉落优质前端博文推荐、学习资源等
网页:https://tg.cosine.ren
本频道的搜索Bot 来辣 👉 @cosSearchBot
私聊直接发消息就可以搜索啦~
🔖tags
#优质博文 #资源推荐 #博客更新 #碎碎念 #项目更新 #手工 #书摘 #阮一峰的科技周刊 #新动态
图频:Cosine 🎨 Gallery @CosineGallery
猫片: @cosine_cat
联系频道主:@cosine_yu
网页:https://tg.cosine.ren
本频道的搜索Bot 来辣 👉 @cosSearchBot
私聊直接发消息就可以搜索啦~
🔖tags
#优质博文 #资源推荐 #博客更新 #碎碎念 #项目更新 #手工 #书摘 #阮一峰的科技周刊 #新动态
图频:Cosine 🎨 Gallery @CosineGallery
猫片: @cosine_cat
联系频道主:@cosine_yu
#优质博文 #git #开源 #性能优化 #rust #版本管理 #新动态
锈化!都给我锈化!
Highlights from Git 2.52
[以下是方便搜索索引的大纲(AI 生成),请读原文]
author Taylor Blau
锈化!都给我锈化!
Highlights from Git 2.52
AI 摘要:Git 2.52 是一次重要更新,带来了全新的 git last-modified 命令,大幅提升了目录级变更追踪性能。改进了 git maintenance 的几何级(geometric)打包策略,使大型仓库的维护更高效。除此之外,还新增了 git repo 命令用于仓库信息查询,引入 Rust 代码优化内部实现,并为 Git 3.0 的默认分支名更改(从 master 到 main)和 SHA-256 过渡打下基础。
[以下是方便搜索索引的大纲(AI 生成),请读原文]
1. Tree-level 责任追踪
• 新增 git last-modified 命令,用于快速查询目录中每个文件最后一次被修改的提交。
• 相比传统 git log + 脚本方式速度提升约 5 倍以上。
• 功能源自 GitHub 内部工具 blame-tree,现上游化至 Git 主干。
• 支持未来改进,比如结果缓存的磁盘格式。
2. 高级仓库维护策略
• git maintenance 命令新增 geometric 任务,实现高效打包与逐步清理策略。
• 该模式基于几何打包(geometric repack),在性能和空间之间取得平衡。
• 相关技术源自 GitHub 自用工具,从 Git 2.33 起逐步完善。
3. 其他核心更新与实验功能
• 新增 git refs list 与 git refs exists 子命令,统一引用(reference)操作接口。
• 全新实验命令 git repo,整合查询仓库结构、对象与格式信息的能力。
• 性能显著提升:git describe、git log -L、git ls-files 等命令获优化。
• Bloom filter 算法改进,支持更复杂的路径匹配(pathspec)。
4. 迈向 Git 3.0 的过渡性变更
• 默认分支配置 init.defaultBranch 将在 3.0 版改为 “main”。
• 引入 SHA-256 作为对象哈希算法的未来默认值,兼容 SHA-1 环境。
• 开放 WITH_BREAKING_CHANGES 构建标志,提前体验 3.0 功能。
5. Rust 支持与内部重构
• 可选启用 WITH_RUST 编译选项,部分内部功能迁移至 Rust 实现。
• 当前用于变量宽度整数 (variable-width integers) 编码/解码。
• 为未来更多核心模块迁移铺路,Git 3.0 将全面要求 Rust。
6. 细节改进与工具增强
• sparse-checkout 新增 clean 子命令,便于清理异常文件状态。
• 多处底层库(特别是 xdiff)获得性能优化补丁。
• 跨工具一致性与脚本可编程性进一步提升。
author Taylor Blau
#优质博文 #开发流程 #Git #工程化 #开源
其实是之前的看到的文章里看到的,觉得有用,Mark 一下。
The stacking workflow
[以下是方便搜索索引的大纲(AI 生成),请读原文]
其实是之前的看到的文章里看到的,觉得有用,Mark 一下。
The stacking workflow
AI 摘要:本文介绍了一种名为 “Stacking” 的开发工作流,用于优化传统的 Git 分支与代码评审流程。它通过将大型改动拆分为多个相互依赖的、小而独立的 PR,实现并行开发与评审,显著减少等待时间与合并冲突。文章还提及多种自动化工具,可帮助开发者轻松管理 Stacked PRs,从而在团队协作中显著提高代码质量与生产效率。
[以下是方便搜索索引的大纲(AI 生成),请读原文]
1. 开发与评审的痛点
• 传统代码评审流程耗时长,对开发者与评审者都是负担。
• 分布式团队受时区影响,沟通与迭代周期延长。
• 在等待评审期间,作者被迫停滞,影响特性迭代与开发效率。
2. 为什么需要 Stacking
• Stacking 将开发和评审流程并行化,可在上一个 PR 尚未合并前继续开发下一步工作。
• 通过拆分大型改动为多个小型、依赖性的 PR,减少复杂度,使每次评审更聚焦。
• 改动间的依赖关系清晰,能更安全地选择性合并各 PR,保持项目演进的灵活性。
3. 手动 Stacking 的困难
• 每个分支都需递归 rebase(再基化),遇上上游改动时需层层同步,极为繁琐。
• Git 原生命令行(CLI)对该流程支持有限,手动处理冲突成本高,容易出错。
4. 支持 Stacking 的工具生态
• GitHub 集成方案:具有 CLI、VS Code 插件与 Web UI,可同步管理栈式 PR。
• 开源 CLI 工具:如 ghstack、git-branchless 等,提供抽象化的 stack 操作流程。
• Meta 的新版本控制系统含原生 Stacking 支持。
• Git 新选项 --update-refs 为 stacking 流程带来更多便利。
5. 采用 Stacking 的价值
• 推动开发者以更模块化的思维进行编码,提升代码可读性与长期可维护性。
• 有助于团队快速理解、学习或回滚更改。
• 不论语言、架构、仓库结构(polyrepo/monorepo),Stacking 均可适用。
• 一旦熟悉该模式,多数开发者会主动维护 5–10 个 PR 栈,形成高效的持续开发节奏。
#优质博文 #Git #版本控制
好看,爱看。
从零开始理解 Git|纯手工打造 Git 仓库|太长可以不看 - 小众软件
好看,爱看。
从零开始理解 Git|纯手工打造 Git 仓库|太长可以不看 - 小众软件
AI 摘要:本文从零开始手工实现 Git 仓库的内部结构与命令逻辑,解释了 git init、git commit、git cat-file 等操作背后发生的机制。作者通过亲手创建 .git 目录与对象,展示 Git 的核心原理如内容可寻址存储(Content Addressable Storage, CAS)、树对象与提交对象、打包与垃圾回收(garbage collection)机制等,帮助读者摆脱“命令黑箱”的依赖,以理解 Git 的本质优雅与简洁设计。
#工具推荐 #Git #任务管理 #开源 #tools
Backlog.md - 在 git 仓库中用 .md 生成并管理项目看板 | GitHub
Backlog.md - 在 git 仓库中用 .md 生成并管理项目看板 | GitHub
AI 摘要: Backlog.md 是一款面向 git 用户的本地项目看板工具,通过将任务以 Markdown 文件形式存储在 git 仓库中,实现项目管理和代码管理的无缝结合。它支持命令行和网页两种操作模式,无需云端和账号,注重数据隐私和本地协作,适合对安全性和离线工作有需求的开发者或团队。同时,它集成了 AI 助手、跨平台支持等功能,开源且免费。
#优质博文 #Git #tools
希望大家都不会需要这个(遇上屎山项目了用这个多少能救救)
这个巨快!(
BFG Repo-Cleaner
希望大家都不会需要这个(遇上屎山项目了用这个多少能救救)
这个巨快!(
BFG Repo-Cleaner
AI 摘要:BFG Repo-Cleaner 是一个比 git-filter-branch 更简单、更快速的工具,用于清理 Git 仓库历史中的不良数据。它通过高效的操作方式,帮助用户删除敏感文件、大文件、特定密码或文件夹等内容,同时保护最新提交以避免破坏生产代码。BFG 的运行速度比 git-filter-branch 快 10-720 倍,适合快速处理大规模仓库历史清理任务。文章详细介绍了 BFG 的使用步骤、功能选项以及注意事项,并强调了备份和验证的重要性。
#优质博文 #git #工程化
How Core Git Developers Configure Git
author Scott Chacon
How Core Git Developers Configure Git
AI 摘要:本文分享了 Git 核心开发者常用的配置设置,并探讨了这些设置为何应成为默认值。文章分为三部分:明显改进 Git 的配置(如分支排序、标签排序、默认分支、差异算法等)、无害且可能有用的配置(如自动纠正提示、提交时显示差异等),以及个人偏好的配置(如合并冲突样式、拉取默认行为等)。作者通过实际示例和配置代码,详细解释了每个设置的作用和优势。
TLDR
• 提供了一组 Git 配置代码,可直接复制到 ~/.gitconfig 文件中,涵盖分支、标签、差异、推送、拉取等优化设置。
How do Git core devs configure their Gits?
• 介绍了 Git 核心开发者通过邮件列表讨论的“春季大扫除”实验,参与者分享了他们认为应成为默认的 9 项配置和 3 个别名。
• 这些配置包括 merge.conflictstyle、rebase.autosquash、diff.algorithm 等。
Clearly Makes Git Better
1. Listing branches
• 使用 branch.sort = -committerdate 按提交日期排序分支,column.ui = auto 以列格式显示分支。
2. Listing tags
• 使用 tag.sort = version:refname 按版本号排序标签,避免字母顺序的问题。
3. Default branch
• 设置 init.defaultBranch = main 避免每次初始化仓库时的警告。
4. Better diff
• 使用 diff.algorithm = histogram 改进差异算法,diff.colorMoved = plain 高亮移动的代码。
5. Better pushing
• 设置 push.autoSetupRemote = true 自动设置上游分支,push.followTags = true 自动推送标签。
6. Better fetching
• 使用 fetch.prune = true 和 fetch.pruneTags = true 自动清理已删除的远程分支和标签。
Why the Hell Not?
1. Autocorrect prompting
• 设置 help.autocorrect = prompt 在输入错误命令时提供纠正建议。
2. Commit with diffs
• 使用 commit.verbose = true 在提交消息编辑器中显示完整差异。
3. Reuse recorded resolutions
• 启用 rerere.enabled = true 和 rerere.autoupdate = true 自动重用冲突解决方案。
4. Global ignore file
• 设置 core.excludesfile = ~/.gitignore 使用全局忽略文件。
5. Slightly nicer rebase
• 使用 rebase.autoSquash = true 和 rebase.autoStash = true 优化变基操作。
A Matter of Taste
1. Better merge conflicts
• 使用 merge.conflictstyle = zdiff3 在冲突标记中显示原始内容。
2. Better pulling
• 设置 pull.rebase = true 将拉取默认行为设为变基而非合并。
3. Run the fsmonitor processes
• 启用 core.fsmonitor = true 和 core.untrackedCache = true 加速大仓库的状态检查。
author Scott Chacon
#优质博文 #git #工程化 #开源
关于 git rebase 的好文章。
从「原子化」提交到妙用 rebase,一次搞定清爽的 Git 提交记录
AI 摘要:这篇文章主要分享了优化 Git 提交记录的三种实用技巧,以提高代码管理效率和协作质量:
1. 原子化提交:每次提交仅处理一个任务,避免将多个功能或修复混在一起,确保提交记录清晰。这样便于排错、复盘、追踪功能开发过程。
2. 善用 git rebase:通过
3. 灵活使用 git commit --amend:在项目早期或功能开发阶段,通过
这些方法不仅利于自身项目管理,也在开源协作中展现专业水准。最后,作者结合实际场景与命令演示了具体操作步骤,帮助读者高效应用这些技巧。
via 少数派 爱拼安小匠
关于 git rebase 的好文章。
从「原子化」提交到妙用 rebase,一次搞定清爽的 Git 提交记录
AI 摘要:这篇文章主要分享了优化 Git 提交记录的三种实用技巧,以提高代码管理效率和协作质量:
1. 原子化提交:每次提交仅处理一个任务,避免将多个功能或修复混在一起,确保提交记录清晰。这样便于排错、复盘、追踪功能开发过程。
2. 善用 git rebase:通过
rebase 合并琐碎的提交,或调整提交顺序,使提交记录更简洁、规范。同时建议合理使用 fixup 和 squash 命令,减少冗余提交。3. 灵活使用 git commit --amend:在项目早期或功能开发阶段,通过
--amend 修改最新提交的内容,避免生成多余的中间提交。项目成型后再切换为细化的提交记录。这些方法不仅利于自身项目管理,也在开源协作中展现专业水准。最后,作者结合实际场景与命令演示了具体操作步骤,帮助读者高效应用这些技巧。
via 少数派 爱拼安小匠
#优质博文 #阮一峰的科技周刊 #tools #工具
科技爱好者周刊(第 319 期):如何拍出爆款视频
1. 使用 @layer 自制一个 CSS 框架(英文) 📓 一篇 CSS 高级教程,介绍使用 @layer 指令,自己写一个 CSS 框架。 #css
2. LosslessCut 🧰 一个开源的跨平台视频剪切软件,目标是成为 FFmpeg 的图形前端。 #ffmpeg
3. Compress JPG 🧰 一个基于谷歌的 squoosh 算法、一次性压缩多张图片的网站。
4. git cliff 🧰 一个自动总结提交信息,生成 changelog 文件的命令行工具。(这个 gif 小动画怪有意思的hhhh) #git #cli
5. APPLORE 🧰 这个网站收集了5000多个应用程序的图标,可以分类搜索。
科技爱好者周刊(第 319 期):如何拍出爆款视频
1. 使用 @layer 自制一个 CSS 框架(英文) 📓 一篇 CSS 高级教程,介绍使用 @layer 指令,自己写一个 CSS 框架。 #css
2. LosslessCut 🧰 一个开源的跨平台视频剪切软件,目标是成为 FFmpeg 的图形前端。 #ffmpeg
3. Compress JPG 🧰 一个基于谷歌的 squoosh 算法、一次性压缩多张图片的网站。
4. git cliff 🧰 一个自动总结提交信息,生成 changelog 文件的命令行工具。(这个 gif 小动画怪有意思的hhhh) #git #cli
5. APPLORE 🧰 这个网站收集了5000多个应用程序的图标,可以分类搜索。
#阮一峰的科技周刊 #前端
我就说我好像忘了什么
科技爱好者周刊(第 273 期):任正非的三篇最新谈话
#优质博文
1. GPT-4V 的图片应用(英文) 📓 #AI 十一期间,OpenAI 公司推出了 GPT-4 的新版本,支持上传图片。
AI 既能处理文字,也能处理图片,打开了许多全新的用法,本文演示其中几种,令人思路大开。
2. Astro 岛屿(英文) 📓 前端框架 Astro 提出的一个概念:静态页面包含动态组件,后者就好像页面里面的"岛屿"(island)。
3. 我爱死静态类型了(英文)📓 作者用实例解释,为什么他认为静态类型总是正确的选择。
#资源推荐 #tools
1. Gitness 🧰 #git 最新出现的 GitHub 开源替代品,用于自己架设服务,托管代码。【我要革了自己的命】
2. Dexie.js 🧰 浏览器原生数据库 IndexedDB 的包装库,提供易于操作的 API。
3. WeOCR 🧰 #图片处理 #OCR一个图片文字识别的 OCR 网站,可以离线使用。【感觉还不错】
4. AnyBT 🧰 一个新出现的磁力链接搜索引擎。
5. DevToys 🧰 一款 Windows 的小工具集合,收入了开发者会用到的许多小工具。
我就说我好像忘了什么
科技爱好者周刊(第 273 期):任正非的三篇最新谈话
#优质博文
1. GPT-4V 的图片应用(英文) 📓 #AI 十一期间,OpenAI 公司推出了 GPT-4 的新版本,支持上传图片。
AI 既能处理文字,也能处理图片,打开了许多全新的用法,本文演示其中几种,令人思路大开。
2. Astro 岛屿(英文) 📓 前端框架 Astro 提出的一个概念:静态页面包含动态组件,后者就好像页面里面的"岛屿"(island)。
3. 我爱死静态类型了(英文)📓 作者用实例解释,为什么他认为静态类型总是正确的选择。
#资源推荐 #tools
1. Gitness 🧰 #git 最新出现的 GitHub 开源替代品,用于自己架设服务,托管代码。【
2. Dexie.js 🧰 浏览器原生数据库 IndexedDB 的包装库,提供易于操作的 API。
3. WeOCR 🧰 #图片处理 #OCR一个图片文字识别的 OCR 网站,可以离线使用。【感觉还不错】
4. AnyBT 🧰 一个新出现的磁力链接搜索引擎。
5. DevToys 🧰 一款 Windows 的小工具集合,收入了开发者会用到的许多小工具。