Best of Version ControlJanuary 2026

  1. 1
    Article
    Avatar of hnHacker News·17w

    I made my own git

    A developer built a simplified version control system from scratch to understand git's internals. The implementation uses SHA-256 hashing (instead of git's SHA-1) and zstd compression (instead of zlib) to store file objects, tree structures, and commits. The project demonstrates how git works as a content-addressable file store, with commits referencing tree objects that contain file hashes. Key features include recursive directory traversal, object compression/decompression, commit generation with parent tracking, and checkout functionality. The hardest part was parsing the custom object formats, which could be improved by using structured formats like JSON or YAML.

  2. 2
    Article
    Avatar of hnHacker News·18w

    Introducing Lix: A universal version control system

    Lix is a universal version control system that can diff any file format, including binary files like Excel, PDF, and DOCX. Unlike Git's line-based diffs, Lix understands file structure and shows semantic changes (e.g., 'price: 10 → 12' instead of 'line 4 changed'). Built on top of SQL databases, it provides version control through virtual tables queryable via SQL. Originally developed for inlang localization infrastructure, Lix addresses Git's limitations with binary and structured files, making it particularly useful for AI agent workflows where changes to non-text files need human review. Currently available for JavaScript with Python, Rust, and Go SDKs planned.

  3. 3
    Article
    Avatar of lobstersLobsters·19w

    How I use Jujutsu

    Jujutsu (JJ) is a version control system that uses Git as a backend but offers a different mental model. Unlike Git, JJ has no staging area—changes are automatically tracked, and you create commits first, then fill them with changes. The workflow emphasizes easy manipulation of commits through commands like rebase, squash, split, and edit. JJ maintains an immutable operation log that enables safe experimentation with undo/redo capabilities. It uses bookmarks instead of branches and integrates seamlessly with Git remotes, allowing teams to use Git while individuals use JJ. The author shares their most-used commands, custom configurations, and workflow patterns developed over three months of daily use.

  4. 4
    Video
    Avatar of techworldwithnanaTechWorld with Nana·19w

    3 Git Workflows Every Developer Should Know (And When to Use Each)

    Git workflows have evolved significantly over the past decade to match modern deployment practices. Git Flow, once the industry standard, uses multiple long-lived branches (main, develop, feature, release, hotfix) and works well for versioned software like mobile apps but adds overhead for continuous delivery. GitHub Flow simplifies this with a single main branch that's always deployable, making it ideal for web applications with frequent deployments. Trunk-based development represents the current best practice for high-performing teams, where developers commit directly to main (or use very short-lived branches) and rely on feature flags, extensive automated testing, and CI/CD pipelines to maintain stability. The evolution reflects improvements in tooling—automated testing, CI/CD, and feature management—that make faster integration possible. Teams often use hybrid approaches, and the right choice depends on your product type, team maturity, test coverage, and deployment frequency.