git VS git-branchless

Compare git vs git-branchless and see what are their differences.

git

A fork of Git containing Microsoft-specific patches. (by microsoft)

git-branchless

High-velocity, monorepo-scale workflow for Git (by arxanas)
InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
git git-branchless
10 55
726 3,308
1.5% -
0.0 9.4
6 days ago 8 days ago
C Rust
GNU General Public License v3.0 or later Apache License 2.0
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

git

Posts with mentions or reviews of git. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-12-10.
  • Ask HN: Can we do better than Git for version control?
    17 projects | news.ycombinator.com | 10 Dec 2023
    Microsoft had a bunch of solutions to handle their massive Windows repo: VFS for Git (GVFS), Scalar, and now it has a bunch of MS specific patches on top of the official git client, but apparently that one is also not required any more as partial clone is now supported on azure as well (which is another such implementation from Microsoft employees that made it to both GitHub and upstream git).

    https://github.blog/2020-01-17-bring-your-monorepo-down-to-s...

    https://devblogs.microsoft.com/devops/introducing-scalar/

    https://github.com/microsoft/git

    https://devblogs.microsoft.com/devops/git-partial-clone-now-...

  • We Put Half a Million Files in One Git Repository, Here's What We Learned (2022)
    4 projects | news.ycombinator.com | 28 Aug 2023
    That was discontinued (like multiple times under different names). And is moved into a git fork. https://github.com/microsoft/git
  • How to convince management that something like Git is industry standard?
    10 projects | /r/sysadmin | 5 Jul 2022
  • Improve Git monorepo performance with a file system monitor
    6 projects | news.ycombinator.com | 29 Jun 2022
    Interesting! It seems some of Scalar from late 2021 has already made it into the official git project's contrib dir [0]. It looks like Scalar is mostly an opinionated way to configure git [1], especially by using git partial-clone.

    Git partial-clone looks almost perfect, except it only downloads and displays files explicitly added to the git sparse-checkout list. I want some "magic" vfs shenanigans that lets me view and browse the full repo exactly as if the full repo where checked out, but when I open a directory or file the contents are downloaded on-demand.

    [0]: https://github.com/git/git/tree/master/contrib/scalar

    [1]: https://github.com/microsoft/git/blob/vfs-2.37.0/Documentati...

  • GitHub incident: 2022/03/24
    1 project | news.ycombinator.com | 24 Mar 2022
    Ironically, Microsoft has been a major contributor to improvements in git for handling large repos after Windows was migrated to git.

    https://github.com/microsoft/git

  • The largest Git repo on the planet (2017)
    1 project | news.ycombinator.com | 26 Jan 2022
    300GB git repo... anyway, good to see there's work for merge in back to git proper, though it seems like that is still a work in progress (maybe) as https://github.com/Microsoft/git/ still seems pretty active.
  • Make your monorepo feel small with Git’s sparse index
    7 projects | news.ycombinator.com | 11 Nov 2021
    This is well written and deserves my upvote, because sparse-checkout is part of git and knowing how it works is useful.

    That said, there's absolutely no reason to structure your code in a monorepo.

    Here's what I think GitHub is doing:

    1) Encourage monorepo adoption

    2) Build tooling for monorepos

    3) Selling tooling to developers stranded in monorepos

    Microsoft, which owns GitHub, created the microsoft/git fork linked in the article, and they explain their justification here: https://github.com/microsoft/git#why-is-this-fork-needed

    > Well, because Git is a distributed version control system, each Git repository has a copy of all files in the entire history. As large repositories, aka monorepos grow, Git can struggle to manage all that data. As Git commands like status and fetch get slower, developers stop waiting and start switching context. And context switches harm developer productivity.

    I believe that Google's brand is so big that it led to this mass cognitive dissonance, which is being exploited by GitHub.

    To be clear, here are the two ideas in conflict:

    * Git is decentralized and fast, and Google famously doesn't use it.

    * Companies want to use "industry standard" tech, and Google is the standard for success.

    Now apply those observations to a world where your engineers only use "git".

    The result is market demand to misuse git for monorepos, which Microsoft is pouring huge amounts of resources into enabling via GitHub.

    It makes great sense that GitHub wants to lean into this. More centralization and being more reliant on GitHub's custom tooling is obviously better for GitHub.

    It just so happens that GitHub is building tools to enable monorepos, essentially normalizing their usage.

    Then GitHub can sell tools to deal with your enormous monorepo, because your traditional tools will feel slow and worse than GitHub's tools.

    In other words, GitHub is propping up the failed monorepo idea as a strategy to get people in the pipeline for things like CodeSpaces: https://github.com/features/codespaces

    Because if you have 100 projects and they're all separate, you can do development locally for each and it's fast and sensible. But if all your projects are in one repo, the tools grind to a halt, and suddenly you need to buy a solution that just works to meet your business goals.

  • Gitfs: Version Controlled File System
    7 projects | news.ycombinator.com | 22 Aug 2021
    VFS for Git was superceded by https://github.com/microsoft/scalar and then many of the features were merged into mainline git, so what is left now is a thin shell around git features in the form of MS's forked git binary: https://github.com/microsoft/git

git-branchless

Posts with mentions or reviews of git-branchless. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-12-10.
  • Ask HN: Can we do better than Git for version control?
    17 projects | news.ycombinator.com | 10 Dec 2023
    Yes, but due to its simplicity + extensibility + widespread adoption, I wouldn’t be surprised if we’re still using Git 100+ years from now.

    The current trend (most popular and IMO likely to succeed) is to make tools (“layers”) which work on top of Git, like more intuitive UI/patterns (https://github.com/jesseduffield/lazygit, https://github.com/arxanas/git-branchless) and smart merge resolvers (https://github.com/Symbolk/IntelliMerge, https://docs.plasticscm.com/semanticmerge/how-to-configure/s...). Git it so flexible, even things that it handles terribly by default, it handles

  • Meta developer tools: Working at scale
    6 projects | news.ycombinator.com | 28 Jun 2023
  • Show HN: Gut – An easy-to-use CLI for Git
    19 projects | news.ycombinator.com | 30 Mar 2023
  • Branchless Workflow for Git
    1 project | /r/hypeurls | 8 Jan 2023
    4 projects | news.ycombinator.com | 8 Jan 2023
    > Is this for a case where a bunch of people branch from master@HEAD (lets call this A), then you need to modify A, so you then need to rebase each branch that branched from A individually?

    Mainly it's for when you branch from A multiple times, and then modify A. This can happen if you have some base work that you build multiple features on top of. I routinely do this as part of rapid prototyping, as described here: https://github.com/arxanas/git-branchless/wiki/Workflow:-div...

    `git undo` shows a list of operations it'll execute, which you have to confirm before accepting. Of course, it's ultimately a matter of trust in the tools you use.

  • Where are my Git UI features from the future?
    9 projects | news.ycombinator.com | 8 Jan 2023
  • git-branchless: High-velocity, monorepo-scale workflow for Git
    1 project | /r/CKsTechNews | 17 Nov 2022
  • git-branchless
    1 project | news.ycombinator.com | 17 Nov 2022
  • Show HN: Maiao, Stacked Diffs for GitHub
    4 projects | news.ycombinator.com | 8 Oct 2022
    What happens is you work somewhere that has stacked diffs and suddenly you learn how to shape your diffs to make them easy to review. Thinking of how folks will review your code in chunks while writing it makes it cleaner. Having small but easy to read diffs makes reviews faster and helps junior devs learn how to review.

    Sometimes this doesn’t happen in which case you end up need to split your commit at the end. This is where git utterly fails. You end up needing git split and git absorb to make this productive.

    Git split let’s you select which chunks in a commit should belong to it and then splits that into a commit and then you do it again and again until you have lots of commits. You’ll still need to probably test each one but the majority of the work is done

    Git absorb takes changes on the top of your stack and magically finds which commit in your stack the each chunk should belong to and amends it to the right commit

    You also need git branchless https://github.com/arxanas/git-branchless as it lets you move up and down the stack without needing to remember so much git arcana.

  • High velocity, monorepo-scale workflow for Git
    1 project | news.ycombinator.com | 19 Sep 2022

What are some alternatives?

When comparing git and git-branchless you can also consider the following projects:

gitfs - Version controlled file system

graphite-cli - Graphite's CLI makes creating and submitting stacked changes easy.

VFSForGit - Virtual File System for Git: Enable Git at Enterprise Scale

jj - A Git-compatible VCS that is both simple and powerful

scalar - Scalar: A set of tools and extensions for Git to allow very large monorepos to run on Git without a virtualization layer

magit - It's Magit! A Git Porcelain inside Emacs.

mvfs - ClearCase file system

vimagit - Ease your git workflow within Vim

libgit2 - A cross-platform, linkable library implementation of Git that you can use in your application.

lazygit - simple terminal UI for git commands

git-fs - fuse + libgit2