Git Rev News: Edition 131 (January 31st, 2026)
Welcome to the 131st edition of Git Rev News, a digest of all things Git. For our goals, the archives, the way we work, and how to contribute or to subscribe, see the Git Rev News page on git.github.io.
This edition covers what happened during the months of December 2025 and January 2026.
Discussions
Support
-
Would it make sense to add a
commit.signOffconfig?Stefan Haller started the discussion by asking if it would be appropriate to add a
commit.signoffconfiguration variable. He observed that while many Git commands, such asmerge,cherry-pick, andrevert, accept the--signoffargument, onlyformat-patchhas a corresponding configuration to enable it for all invocations. Stefan found it reasonable for users to want a “Signed-off-by” trailer added automatically to every commit they make. This question was prompted by his work on the Lazygit project, which already includes such a configuration and had received a feature request to extend its behavior to therevertcommand.The “Signed-off-by” trailer is a formal certification that the contributor has the right to submit the work under the project’s license, often associated with a Developer Certificate of Origin (DCO). While widely used in open-source projects to maintain a legal paper trail, its use in closed-source environments is less common.
Carlo Marcelo Arenas Belón replied to Stefan, noting that a similar topic had been discussed recently where it was argued that sign-offs should be given explicitly rather than automated. Junio Hamano, the Git maintainer, agreed and suggested resurrecting a proposal from 2020 to explicitly document why Git intentionally lacks this configuration. Junio expressed a desire to “save time from potential contributors” who might otherwise put effort into a patch that the community had already reached a consensus against.
Collin Funk supported the idea of documenting the consensus and recommended using the full phrase “Signed-off-by” instead of the abbreviation “SoB” to ensure clarity for all readers. brian m. carlson suggested that the explanation could be placed in the Git FAQ, the manual pages, or both. brian also provided a minor grammatical correction to the initial text proposal.
Junio submitted version 1 of a patch to document the decision. The proposed text explained that automation makes it harder to defend a sign-off’s validity in court, as a person could claim the trailer “was done by inertia without person X really intending to certify what DCO says”. The patch also acknowledged that while
format.signoffexists, it is considered a “historical mistake” that should not be emulated by other commands.Elijah Newren found the initial draft somewhat difficult to parse and suggested an alternative version with more sentence breaks. Elijah’s draft emphasized that Git avoids automatic sign-offs specifically to “protect the legal and intentional significance of a sign-off”. He also recommended a shorter version for the manual pages that would point users toward a more detailed entry in the FAQ. Johannes Sixt agreed that Elijah’s version was much easier to read and suggested a minor shortening of the final sentences to maintain impact. Johannes also emphasized the importance of leaving a pointer in the manual pages, as users looking for automation features are more likely to check documentation for specific commands rather than the general FAQ.
Junio provided version 2 of the patch, which incorporated Elijah’s and Johannes’s refinements. During the final review, Johannes suggested changing the phrase “pile on more mistakes” to “add more mistakes” to be clearer for non-native English speakers. Junio adopted this change, noting it would be clear for everyone. Kristoffer Haugsbakk also contributed a final polish by suggesting the use of a proper
linkgit:gitfaq[7]reference in the manual page. Elijah and brian both confirmed they were satisfied with the final result.During the discussion there was a clear consensus that Git will not add a global
commit.signoffconfiguration. The creation of permanent documentation in the Git FAQ and manual pages to explain the legal reasoning behind this decision will prevent future contributors from wasting time on a feature that would be rejected.
Other News
Various
- A data model for Git (and other docs updates) by Julia Evans on her blog (see comments on Mastodon and on LWN.net announcement).
- SQL Server Management Studio 22 Git Integration by Daniel Calbimonte on MSSQLTips.
Light reading
- Diff Algorithm Spelunking
by Dachary Carey.
- See also Difftastic, a structural diff tool that understands syntax, first mentioned in Git Rev News Edition #86, and Delta, a syntax-highlighting pager for git, diff, and grep output, first mentioned in Git Rev News Edition #86.
- Git Rebase for the Terrified by Aaron Brethorst on Brethorsting Blog.
- I made my own git
by Tony Strømsnæs on his blog.
As it was created with the goal of improving the author’s understanding of Git,
it is intentionally made not compatible with Git:
it uses SHA-256 instead of (current) SHA-1, and zstd instead of zlib.
The example code is written in Rust.
- The Build your own
Gitsection of build-your-own-x lists a few articles about reimplementing parts of Git functionality. Mentioned in Git Rev News Edition #40. - Write yourself a Git! by Thibault Polge is an attempt at explaining the Git version control system from the bottom up by reimplementing it in Python. Mentioned in Git Rev News Edition #49.
- The Build your own
- git-pkgs: explore your dependency history by Andrew Nesbitt on his blog.
- Git’s HTTP server side design does not scale: a small rant about CGI. Written by Xe Iaso on their blog.
- Tracking kernel development with korgalore by Konstantin Ryabitsev on his blog. TLDR: use korgalore to bypass mailing list delivery problems. (See also comments on LWN.net.)
- My first 20,000 curl commits by Daniel Stenberg on his blog.
- GitOps with ArgoCD feels like the right abstraction by Nick Scialli on his blog.
- Bob and Alice: a git patch love story by cybrkyd (Just another Cyber Kid).
- Allowlist for .gitignore
by Hugues Morisset (izissise) on his blog.
Describes a dedicated script to generate the allow-list based
.gitignorefile effectively to used with a monorepo. - On git show
by Tony Strømsnæs on his blog,
about the use of
git show <revision>:<path>. - How to sync files between two local machines using Git by Bobby Jack on How-To Git.
- Manage Diagrams in AsciiDoc (with PlantUML) on GitHub
(using a build script) by Lorna Jane Mitchell on LornaJane Blog.
- See also Include diagrams in your Markdown files with Mermaid (2022) by Martin Woodward & Adam Biagianti on GitHub Blog, mentioned in Git Rev News Edition #84.
- Maintaining shadow branches for GitHub PRs by Fangrui Song (MaskRay). The goal is to be able to see clean diffs between base and feature branch, even though the underlying commits were rewritten, and the base moved ahead.
- Post-Agentic Code Forges,
by Son Luong Ngoc (sluongng) on Son’s Substack.
- See also Getting AI to Work in Complex Codebases.
- Abandon Git LFS because AI Agents
by Justin Poehnelt (jpoehnelt) on his blog
(includes description on how to use
git filter-repoto migrate from Git LFS to standard Git). - How I use Jujutsu
by Abhinav Sarkar on their blog.
- Jujutsu (
jj) is a Git-compatible version control system, written in Rust, which was first mentioned in Git Rev News Edition #85.
- Jujutsu (
- How GitHub monopoly is destroying the open source ecosystem by Lionel Dricot (Ploum).
- Moving from GitHub pages to Codeberg pages by Florian Kotthoff on his Hugo & PaperMod powered blog.
- Showcasing my Git repositories on the web
(by creating a static site with GitGen, where everything is generated ahead of time)
by cybrkyd.
- Compare Gitmal, a static page generator for Git repositories, mentioned in the previous edition.
- This tool (pgit) turns any Git repo into a private, offline “GitHub” website by Bobby Jack on How-To Geek.
- Git Brag: Highlight and Share Your Open Source Contributions by Robert Hafner on his tedious ramblings blog.
- Your GitHub Contribution Graph Means Absolutely Nothing - And Here’s Why by Sylwia Laskowska on DEV.to.
- Git forge opinions: GitHub, GitLab, Gitea, Sourcehut (2022) by Cadence on cadence’s website.
Git tools and sites
- forgeperf.org - Software Forge Performance Index. Reports generated with Lighthouse, originally updated weekly, last update February 7, 2024. Created and maintained by the SourceHut forge.
- Mirror to Codeberg: a central place of information about mirroring repos to Codeberg. Includes some thoughts about why one would want to switch from GitHub or GitLab, or at least have a second place for your code: a mirror that’s contributable, with links to other articles.
- git-natural-api is a lightweight git HTTP client for fetching repository data without cloning. It uses /git-upload-pack custom calls to get access to file trees, commit history or individual objects. Written in TypeScript, provides a JavaScript/TypeScript API. Can be used in browser, using Bun, Deno, or Node.js. No license provided.
- Grasp
(Git Relays Authorized via Signed-Nostr Proofs)
is a distributed, protocol-first approach to hosting Git repos.
You pre-authorize pushes via signed
Nostr events,
then any compliant server can host your repo.
ngit-relay is a Grasp reference implementation
that uses a Dockerized stack: nginx, git-http-backend and a Khatru relay.
- Compare Tangled, a social-enabled Git collaboration platform built on top of the AT Protocol (which is behind the BlueSky microblogging federated social media service). First mentioned in Git Rev News Edition #125, then in #126, and #128.
- Compare Radicle, an open source, peer-to-peer code collaboration stack built on Git, first mentioned in Git Rev News Edition #49, and many times since; most recently in #126.
- There is also gitstr (
git str), a tool to send and receive Git patches over Nostr, using NIP-34 (mentioned in Git Rev News Edition #109). - Compare
git-ssb(see the git-ssb-intro guide), a decentralized Git repo hosting and issue tracking on Secure-ScuttleButt (SSB) (mentioned in Git Rev News Edition #26 and #40). - Contrast with ForgeFed (formerly GitPub), a federation protocol for software forges (an ActivityPub extension), mentioned in Git Rev News Edition #69.
- The Game of Trees Hub is a transparently funded
Git repository hosting service. Its infrastructure is based on OpenBSD
and Game of Trees.
- Game of Trees (Got) is a version control system developed by and for OpenBSD developers, which wants to remain on-disk compatible with bare Git repositories. Mentioned in Git Rev News Edition #54.
- keifu (系譜, /keːɸɯ/) is a terminal UI tool that visualizes Git commit graphs. It shows a colored commit graph, commit details, and a summary of changed files, and lets you perform basic branch operations. Written in Rust, under MIT license.
- git-com is a TUI tool for creating structured commit messages that’s easy to configure for each project. Written in Go, under MIT license.
- Git Brag is an open source web application (or CLI) that creates a simple report of the contributions you’ve made to open source projects on GitHub (it requires logging with GitHub to create the report). Written in Python, under MIT license.
- GitGen
is a lightweight static website generator for local Git repositories written in Python.
It scans a directory of Git repositories and produces a navigable,
self-contained HTML website similar in spirit to cgit or GitWeb,
but without any server-side dependencies.
The generated site includes a repository index, per-repository README rendering,
file listings, commit history, and detailed commit views with diffs.
Under GPLv3 license.
- Compare Gitmal, a static page generator for Git repositories, written in Go, under MIT license. It was mentioned in Git Rev News Edition #130.
- pgit is static site generator for git repos. Demo at https://git.erock.io/. Written in Go, under MIT license.
- GAH! is your friendly neighborhood good helpful archiver. It archives GitHub issues and pull requests, and can create a static site from archives. Written in Python, under BSD license (Simplified BSD License).
- tokendiff is a Go library and CLI for token-level diffing with delimiter support. Tokendiff uses a histogram diff algorithm that groups semantically related changes together, producing more readable output than traditional Myers-based approaches for complex structural changes. It builds on diffx, a Go implementation of Myers diff. Under MIT license.
- CleanDiff is a graphical diffing tool that shows you what’s changed on a word level, instead of a line level. It uses the tokendiff library to find semantically relevant changes, and wraps them in a nice UI and easy Git integration. Written in Go and JavaScript, under MIT license.
- patch-hub is a terminal-based user interface (TUI) designed to simplify working with software patches sent through mailing lists in Linux-related development. It provides an efficient way to navigate and interact with patches archived on lore.kernel.org, specifically for the Linux kernel and adjacent projects. Written in Rust, under GPL-2.0 license.
- Korgalore is a tool for feeding public-inbox Git repositories, like lore.kernel.org, directly into mail targets (Gmail, JMAP, IMAP, or local maildir) as an alternative to subscribing. It provides a workaround for Gmail’s notorious hostility to high-volume technical mailing list traffic. Written in Python, under GPL-2.0 license.
- git-pkgs provides a
gitsubcommand for tracking package dependencies across Git history. It analyzes your repository to show when dependencies were added, modified, or removed, who made those changes, and why. Builds on bibliothecary, the manifest parsing library behind ecosyste.ms. Written in Go (originally in Ruby), under MIT license.
Releases
- Git 2.53.0-rc2, 2.53.0-rc1, 2.53.0-rc0
- Git for Windows v2.53.0-rc2(1), v2.53.0-rc1(1), v2.53.0-rc0(1)
- GitHub Enterprise 3.19.1, 3.18.4, 3.17.10, 3.16.13, 3.15.17, 3.14.22
- GitLab 18.8.2, 18.7.2, 18.6.4, 18.8.1, 18.8, 18.7.1, 18.6.3, 18.5.5
- Gerrit Code Review 3.11.8, 3.12.4, 3.13.2
- GitKraken 11.8.0
- Sourcetree 4.2.16
- Garden 2.5.1, 2.5.0
- Git Cola 4.17.0
- GitButler 0.18.7, 0.18.6
- Kinetic Merge 1.14.0
- git-credential-oauth 0.17.2, 0.17.1, 0.17.0
Credits
This edition of Git Rev News was curated by Christian Couder <christian.couder@gmail.com>, Jakub Narębski <jnareb@gmail.com>, Markus Jansen <mja@jansen-preisler.de> and Kaartic Sivaraam <kaartic.sivaraam@gmail.com> with help from Toon Claes.