Show HN: Tangled – Git collaboration built on AT Protocol7 months agohttps://tangled.orgTangled是一个基于atproto构建的新型社交化git协作平台。开发者对其代码拥有完全所有权,开源社区可实现自治管理。采用knots(微型无头git服务器)实现轻量级git仓库托管。支持基于角色的细粒度访问控制和SSH推送/拉取操作。改进的拉取请求模型:采用轮次化流程和跨轮次差异比对。通过Jujutsu的change ID实现堆叠式拉取请求支持。支持使用git diff或git format-patch快速提交临时修改。内置热门动态时间线功能。
Git, JSON and Markdown walk into bar7 months agohttps://www.grumpygamer.com/git_json_markdown/自2010年以来,Git从根本上改变了作者的开发生活,提供了本地优先的工作方式,但也带来了文件锁定和清理密钥等挑战。Markdown已成为文档编写的事实标准,尽管其语法存在怪癖且作者对其创建者抱有个人意见。JSON被广泛用于游戏数据文件,但其严格语法(禁止尾随逗号、必须引用的键名)令人沮丧,这促使作者编写了自定义解析器。讨论内容包括对Markdown强调符号起源的批评、JSON的局限性,以及提及YAML和reStructuredText等替代方案。
Git Bisect7 months agohttps://til.simonwillison.net/git/git-bisect使用git bisect run自动化提交历史的二分查找来发现Datasette中的bug在GitHub issue #716中记录了学习和发现bug的过程,并将相同方法应用于issue #689通过快速定位32个修订版本中引入bug的具体提交,展示了git bisect run的高效性提供了自定义Python脚本来检查HTML响应中是否存在'Templates considered'作为二分查找的条件识别出引入bug的第一个错误提交(70b915fb4bc214f9d064179f87671f8a378aa127),展示了git bisect run的强大功能
Tangled, a Git collaboration platform, built on atproto7 months agohttps://blog.tangled.org/introTangled 是一个基于 AT 协议构建的去中心化 Git 协作平台。其目标是让开发者拥有代码所有权,并使编码变得社交化和有趣。使用'knots'——轻量级服务器托管 Git 仓库,适合个人及社区使用。提供免费仓库托管的托管服务。tangled.sh 上的应用视图可无缝访问不同 knots 中的仓库。核心原则:数据所有权、低门槛、用户体验不打折。目前处于早期开发阶段,最初仅限邀请制,现已向公众开放。
Tangled: A social coding platform built with ATProto and Git7 months agohttps://tangled.org/Tangled是一个基于atproto构建的新型社交化git协作平台开发者对其代码拥有完全所有权,开源社区可实现自治管理采用knots实现轻量级git仓库托管——专为git操作设计的微型无头服务器基于角色的细粒度访问控制,支持SSH进行推送/拉取操作改进版PR模型:采用多轮次流程设计,支持轮次间差异比对通过Jujutsu的变更ID实现堆叠式PR(Pull Requests)支持使用git diff或git format-patch快速提交临时性修改内置热门动态时间线功能
Git Developers Talk About Potentially Releasing Git 3.0 by the End of Next Year7 months agohttps://www.phoronix.com/news/Git-3.0-Release-Talk-2026Git开发者计划在2026年底前发布Git 3.0版本Git 3.0将默认采用SHA-256哈希算法以提升安全性,取代现行的SHA1SHA-256哈希支持及SHA1/SHA-256互操作性长期以来都是核心开发目标Git 3.0虽规划了多项重大变更,但SHA-256的采用最受业界关注Git贡献者峰会讨论了2026年底的潜在发布时间表主要挑战在于确保所有依赖项目(代码托管平台等)完成SHA-256支持适配若互操作性及依赖项目准备未按时完成,发布时间可能会推迟
Discussion of the Benefits and Drawbacks of the Git Pre-Commit Hook7 months agohttps://yeldirium.de/2025/10/09/pre-commit-hooks/index.htmlGit预提交钩子是软件项目中用于自动化质量保障的工具。若脚本运行失败则阻止提交,防止敏感信息被追踪。需将脚本置于.git/hooks目录进行配置,但该目录不受Git版本控制。Pre-Commit、Prek和Husky等工具通过依赖管理简化了配置流程。Pre-Commit通过清单文件支持常见质量检测工具(Gitleaks/ESLint/Nixfmt)。基于npm的Husky更适用于JavaScript/TypeScript项目。可通过符号链接实现钩子版本控制,但克隆后需手动配置。配合Gitleaks等工具能有效预防密钥(API令牌/SSH密钥)泄露。集成自动化格式化、静态检查与测试可能降低工作流速度。通过在代码审查前自动执行检查,减轻开发者心智负担。若测试频繁失败可能导致开发者禁用钩子,反而破坏工作流。克隆后需额外配置,增加了新成员上手复杂度。运行缓慢的钩子会激怒频繁提交小改动的开发者。防范敏感信息泄露是最大优势,值得投入配置成本。建议:保持钩子快速运行且 minimally disruptive(最小化干扰)。Devenv集成Pre-Commit功能,大幅简化配置管理流程。替代方案包括手动质量检测脚本,但依赖使用者自律性。
Git considers SHA-256, Rust, LLMs, and more7 months agohttps://lwn.net/SubscriberLink/1042172/9d52ec008a209167/Git计划于2026年发布3.0版本,重点推进SHA-256哈希算法过渡、Rust语言集成以及规范AI生成代码的贡献政策。SHA-256算法过渡进展缓慢,实现SHA-1与SHA-256版本库的互操作性仍是主要挑战。Git正在引入Rust代码,计划在3.0版本时将Rust列为强制编译依赖项。出于法律风险和代码质量考虑,项目对接受AI生成的代码贡献持谨慎态度。Git计划在3.0版本中将默认分支名称从'master'变更为'main'。项目近期庆祝了20周年诞辰,突显其持续活跃的开发态势。
Magit Is Amazing7 months agohttps://heiwiper.com/posts/magit-is-awesome/Jujutsu VCS作为一种新型版本控制系统正逐渐受到关注。文章强调了Jujutsu VCS相比Git的灵活性,但作者很快失去了兴趣。作者主要使用Magit进行Git操作,而非Git命令行界面。作者在思考如果最初使用Git命令行是否会加深对Git的理解。Magit帮助作者在职业生涯早期就发现了Git命令,这让他们比同事更具优势。由于文章内容不够吸引人,作者目前没有尝试Jujutsu VCS的迫切愿望。
You Already Have a Git Server7 months agohttps://maurycyz.com/misc/easy_git/使用`git clone ssh://username@hostname/path/to/repo`通过SSH访问克隆服务器上的git仓库。通过`git config receive.denyCurrentBranch updateInstead`允许推送到远程服务器当前检出的分支。通过将web服务器指向git仓库发布代码,可选择移除`.git`部分使URL更简洁。在服务器端运行`git update-server-info`使仓库可通过HTTP克隆。通过设置post-update钩子自动执行`git update-server-info`。可以自定义git钩子在更新后运行脚本,例如静态网站生成器。使用git在不同计算机间同步工作,可自动备份并跟踪版本历史。
Show HN: Git Auto Commit (GAC) – LLM-powered Git commit command line tool7 months agohttps://github.com/cellwebb/gacLLM驱动的工具'gac'通过分析代码变更生成上下文相关的提交信息支持多种LLM服务提供商,包括Anthropic、OpenAI和Gemini具备智能过滤功能,可忽略生成的文件和依赖项提供三种信息格式:单行式、标准式和详细式包含交互式反馈功能,可根据特定要求重新生成信息与Git工作流集成并遵守pre-commit钩子提供自动密钥检测功能,防止提交敏感数据支持通过环境变量或交互式设置进行配置支持一站式工作流,可暂存、提交和推送变更包含详细的文档和故障排除指南
Git CLI tool for intelligently creating branch names7 months agohttps://github.com/ytreister/gibrgibr 是一个用于创建与问题跟踪系统关联的Git分支的CLI工具支持多种问题跟踪系统,如GitHub、GitLab、Jira和Linear根据问题详情自动生成规范化的分支名称包含类似`gibr issues`的命令用于列出未解决问题,或`gibr 123`为#123号问题创建分支可通过`.gibrconfig`文件配置,支持通过`gibr init`交互式初始化设置提供Git别名功能以便捷操作,例如可使用`git create 123`等命令支持分支名称中的占位符,如`{issuetype}`(问题类型)、`{issue}`(问题编号)和`{title}`(标题)包含verbose调试标志,可输出详细日志欢迎通过GitHub的issues和discussions功能提交贡献与反馈
At the end you use Git bisect6 months agohttps://kevin3010.github.io/git/2025/11/02/At-the-end-you-use-git-bisect.htmlGit bisect 使用二分查找来定位引入错误的提交。二分查找在 Git 调试中的实际应用。示例场景:由于 monorepo 中的配置更改导致测试失败。流程:先确定正常和异常的提交,然后通过二分查找定位问题提交。演示仓库设置,包含文件的好版本和坏版本。使用 git bisect 的示例命令及输出结果。
Show HN: Serie – A rich Git commit graph in your terminal6 months agohttps://github.com/lusingander/serieSerie 是一款终端用户界面(TUI)应用,旨在增强终端中git log --graph命令的显示效果。它提供以提交图谱为核心的Git仓库浏览体验,无需依赖复杂工具。支持多种安装方式,包括cargo、pacman、brew和pkgin等包管理器。功能特性包括可定制的提交排序方式(时间序或拓扑序)、图谱宽度调节及预加载选项。内置丰富的快捷键绑定,支持导航、搜索和查看提交详情等操作。可通过配置文件调整协议类型、提交排序规则和界面偏好设置。支持用户自定义命令来显示特定输出(如git差异对比)。兼容多种终端模拟器,包括iTerm2、WezTerm及VSCode集成终端。采用MIT开源协议,欢迎遵循项目指南参与贡献。
Mergiraf: Syntax-Aware Merging for Git6 months agohttps://lwn.net/SubscriberLink/1042355/434ad706cc594276/Mergiraf是一个支持语法感知的Git合并冲突解决工具,兼容包括C、Python和Rust在内的33种编程语言。它采用通用算法,仅需极少的语言特定知识即可解决Git默认基于行的策略无法处理的冲突。该工具利用tree-sitter解析库将代码转换为语法树,并仅聚焦于冲突部分以保证效率。当修改涉及不同语法元素(如返回类型与参数类型)且无重叠时,Mergiraf可自动解决这类冲突。在Linux内核合并历史的测试中,Mergiraf成功解决了Git默认策略未能处理的7,415个冲突中的428个。该工具使用Rust编写,采用GPLv3许可证,既可作为Git合并驱动集成,也可通过`mergiraf solve`命令手动使用。虽然并非完美,但Mergiraf显著减少了手动合并工作量(特别是明显冲突),仍建议用户检查其解决方案。
My Git history was a mess of 'update' and 'fix' – so I made AI clean it up6 months agohttps://github.com/f/git-rewrite-commits使用GPT重写git提交信息的AI工具自动按照约定式提交标准改进提交信息在重写历史前创建备份分支以确保安全支持自定义模板、语言和AI提示词包含git钩子实现自动信息优化提供试运行模式预览修改效果评估提交质量并默认跳过格式良好的信息兼容GPT-3.5和GPT-4模型提供多种安装方式包括npx和npm包含针对不同使用场景的广泛定制选项未经团队协调不建议在共享仓库中使用
The (Lazy) Git UI You Didn't Know You Need6 months agohttps://www.bwplotka.dev/2025/lazygit/作者分享了在尝试neovim时发现基于终端的Git UI工具lazygit的经历由于易用性、效率提升和流畅的用户体验,lazygit迅速成为作者的主要Git工具该工具因与Git CLI术语的一致性、可探索性及操作时的交互式引导而备受赞誉lazygit在无需创建新工作流的前提下,通过增强现有CLI操作的安全性和可用性来优化Git流程作者重点介绍了lazygit带来的具体改进:变更迭代、分支同步和代码拣选等场景lazygit的设计原则(简洁性、一致性、交互性)为构建其他开发者工具提供了灵感尽管AI技术发展迅猛,作者认为lazygit在版本控制领域仍将保持长期价值文章最后鼓励读者试用lazygit、参与项目贡献,并将其UX理念应用到其他工具开发中
Exposing Git Information in Rust Binaries Built with Nix6 months agohttps://lgug2z.com/articles/exposing-git-information-in-rust-binaries-built-with...Rust二进制文件中的Git信息有助于追踪版本和提交记录,对调试很有帮助。shadow-rs crate用于在构建时将Git信息(如提交哈希、分支名)嵌入CLI工具。Nix构建会排除.git目录,导致shadow-rs无法获取Git信息。解决方案:使用Nix flake的self.rev将提交哈希作为构建时环境变量传递。修改build.rs以同时支持cargo和Nix构建,确保两种方式都能获取版本信息。对于Nix构建,提交哈希取自flake的self.rev;分支名仍不可用。最终输出显示:Nix构建的版本信息包含提交哈希,cargo构建则包含分支名。感谢贡献者的指导和解决方案。作者邀请通过社交媒体提供反馈,并通过GitHub赞助获取komorebi for Mac的早期访问权限。
CLI tool to check the Git status of multiple projects6 months agohttps://github.com/uralys/check-projects一个快速、跨平台的CLI工具,用于按分类检查多个项目的git状态显示未提交的变更、领先远程分支或其他git状态指示器支持多分类组织、嵌套项目发现和并发扫描提供灵活的基于YAML的配置,支持本地和全局配置智能过滤功能默认隐藏干净项目,仅显示需要注意的内容提供适用于macOS、Linux和Windows的单一二进制文件支持通过curl脚本安装或从GitHub Releases手动下载提供示例YAML文件进行配置文件设置支持显式项目列表或自动扫描目录模式命令选项包括详细模式、特定分类检查和自定义配置文件提供开发命令用于依赖管理、构建、测试和发布
Furgit: Fast implementation of Git in pure Go6 months agohttps://github.com/runxiyu/furgitFurgit是一个用纯Go语言编写的高速Git库,目前处于初期开发阶段,尚未发布正式版本。其API尚不稳定,不建议在生产环境中使用;未来版本可能遵循语义化版本2.0.0规范。该项目源自开发中的软件协作平台Villosa,定位为库而非CLI工具替代品。专为goroutine并发设计,支持长期运行的应用(如代码托管平台)维护仓库池以实现快速访问。性能导向,基准测试显示其速度与上游Git相当,部分操作比libgit2快10倍,比go-git快1000倍。默认支持SHA-256哈希算法,通过构建标签可选SHA-1;未来可能研究单次构建同时支持两种算法。要求Go 1.18或更高版本,若需新语言特性可能放弃gccgo支持。采用GNU AGPLv3许可证,含未来版本代理授权条款;贡献者须签署开发者原创证书。托管于Lindenii Forge平台,贡献指南要求使用唯一分支命名和SSH密钥推送。包含使用Furgit作为后端的实验性Villosa实例,建议直接向Lindenii Forge贡献而非镜像站。