Open-source version-control software
643 open-source libraries, tools and applications tagged version-control, ranked by how closely version-control is their primary purpose, then by adoption and maintenance health. Each entry links to a page with sources, use cases and when to choose or avoid it.
643 products, primary matches first, then adoption-weighted; health v2 shown.
| Product | Health v2 | Stars | Maturity |
|---|---|---|---|
| toplenboren/simple-git-hooks simple-git-hooks is a zero-dependency npm tool that manages git hooks for small projects via a single configuration object in package.. It … | 85 | 1682 | active |
| ncipollo/release-action A GitHub Actions action that creates GitHub releases and optionally uploads build artifacts to them. It supports updating existing releases… | 88 | 1681 | active |
| winfsp/hubfs HUBFS is a user-space file system that mounts GitHub and GitLab repositories as regular directories and files, so any application can read … | 35 | 1681 | active |
| github/gh-stack A GitHub CLI extension for managing stacked branches and pull requests, written in Go. It automates creating branch chains, rebasing them, … | 83 | 1677 | active |
| microsoft/VFSForGit VFS for Git is a virtual file system for Windows that lets Git repositories of enterprise scale behave like normal working directories, dow… | 90 | 6134 | maintenance |
| chriswalz/bit Bit is a modernized Git CLI built on top of git that provides sensible defaults, command/flag suggestions, and autocompletion for files and… | 23 | 6101 | maintenance |
| homerchen19/github-file-icons A browser extension that replaces the default file icons on GitHub, GitLab, Gitea, and Gogs with distinct icons per file type. It supports … | 23 | 1646 | active |
| vanniktech/gradle-dependency-graph-generator-plugin A Gradle plugin that generates visual dependency graphs for a project, outputting PNG, SVG, and DOT files. It supports customizable generat… | 66 | 1628 | active |
| splitsh/lite splitsh-lite is a fast, Go-based replacement for `git subtree split` that extracts subdirectories of a monolithic repository into read-only… | 44 | 1612 | active |
| jupyterlab/jupyterlab-git A JupyterLab extension that adds Git version control support to the JupyterLab interface, providing a left-panel UI for staging, committing… | 95 | 1611 | active |
| dotnet/Nerdbank.GitVersioning A .NET library and CLI tool that generates unique, semver-compatible version numbers for assemblies and packages from a single version.json… | 93 | 1594 | active |
| crate-ci/cargo-release cargo-release is a Cargo subcommand that streamlines releasing Rust crates by extending `cargo publish` with validation, version bumping, t… | 97 | 1593 | stable |
| josegonzalez/python-github-backup A Python CLI tool that backs up GitHub users, organizations, or individual repositories, including wikis, issues, discussions, releases, gi… | 95 | 1593 | active |
| nabijaczleweli/cargo-update A cargo subcommand (installed as cargo-update, invoked as cargo install-update) that checks and applies updates to executables installed vi… | 89 | 1592 | active |
| dlvhdr/diffnav diffnav is a terminal-based git diff pager built in Go, based on delta but adding a GitHub-style file tree for navigating changes. It provi… | 89 | 1590 | active |
| dtolnay/rust-toolchain A concise GitHub Action that installs a Rust toolchain via rustup with one-line usage and sensible defaults. The toolchain version is selec… | 67 | 1589 | stable |
| esmuellert/codediff.nvim A Neovim plugin that renders VSCode-style diffs with side-by-side or inline layouts and two-tier line/character-level highlighting, powered… | 76 | 1588 | active |
| magit/forge Forge is an Emacs package that extends Magit to work with Git forges such as GitHub and GitLab, letting users manage issues and pull reques… | 98 | 1578 | active |
| nodegit/nodegit NodeGit provides asynchronous native Node.js bindings to the libgit2 C library, exposing a full Git API (clone, commit, diff, rebase, etc.)… | 61 | 5750 | maintenance |
| k0shk0sh/FastHub FastHub is an open-source GitHub client app for Android, built from scratch in Java with an MVP architecture. It supports browsing repos, i… | 10 | 5738 | maintenance |
| frostming/legit Legit is a complementary command-line tool for Git that simplifies common feature-branch workflows, inspired by GitHub for Mac. It provides… | 23 | 5682 | maintenance |
| java-diff-utils/java-diff-utils An open-source Java library for performing diff operations between texts or data: computing diffs, applying patches, generating and parsing… | 92 | 1549 | active |
| geminabox/geminabox Geminabox is a really simple self-hosted RubyGems server that lets you host and push your own gems just like rubygems.org. It supports the … | 98 | 1547 | active |
| abhixdd/ghgrab ghgrab is a Rust-based terminal UI tool for browsing and downloading specific files or folders from Git forges like GitHub, GitLab, Codeber… | 81 | 1546 | active |
| cla-assistant/cla-assistant CLA assistant is a web service and self-hostable application that automates Contributor License Agreement handling for GitHub repositories.… | 23 | 1544 | stable |
| kahole/edamagit edamagit is a VSCode extension that brings the keyboard-driven Magit Git interface from Emacs to Visual Studio Code. It provides popups and… | 65 | 1538 | active |
| Zhengqbbb/cz-git cz-git is a highly customizable, lightweight Commitizen adapter for generating standardized Conventional Commits git commit messages, with … | 84 | 1529 | active |
| github/dev github.dev is a web-based VS Code editor that runs entirely in the browser, launched by pressing the . key on any GitHub repository or pull… | 10 | 1524 | stable |
| Bhupesh-V/ugit ugit is a shell script tool that helps you undo accidental git commands across 20+ scenarios, such as undoing commits, adds, pushes, branch… | 26 | 1510 | active |
| kodustech/kodus-ai Kodus (Kody) is an open-source AI code review agent that reviews pull requests on GitHub, GitLab, Bitbucket, and Azure Repos. It is model-a… | 84 | 1509 | active |
| appleboy/CodeGPT CodeGPT is a Go-based CLI tool that uses LLM APIs (OpenAI, Gemini, Anthropic, Groq, Ollama, OpenRouter) to generate git commit messages and… | 96 | 1506 | active |
| petervanderdoes/gitflow-avh A collection of Git extensions implementing Vincent Driessen's git-flow branching model, maintained as the AVH Edition fork with additional… | 10 | 5448 | maintenance |
| release-plz Release-plz is a Rust CLI and GitHub Action that automates releasing Rust crates: it generates changelogs with git-cliff, bumps versions ba… | 95 | 1497 | active |
| github-release/github-release A small command-line app written in Go for creating, editing, and deleting GitHub releases and uploading release artifacts via the GitHub R… | 34 | 1497 | active |
| kynan/nbstripout A command-line tool that strips output and some metadata from Jupyter, IPython, and Zeppelin notebooks. It is designed to be used as a Git … | 69 | 1492 | active |
| Scalafmt Scalafmt is a code formatter for Scala that enforces consistent style across a codebase. It is configurable via a .scalafmt.conf HOCON file… | 95 | 1490 | stable |
| cooperspencer/gickup Gickup is a Go-based CLI tool that clones or mirrors Git repositories from one hosting provider to another, supporting GitHub, GitLab, Gite… | 97 | 1487 | active |
| git-appraise A distributed code review system for Git repositories, implemented as a Go command line tool. Reviews are stored as git objects (git-notes)… | 23 | 5326 | maintenance |
| HexmosTech/git-lrc git-lrc is a free, open-source tool that runs micro AI code reviews automatically on every git commit. It is written in Go and integrates w… | 82 | 1469 | active |
| Secretlint Secretlint is a pluggable linting tool that scans projects for committed credentials and secrets, reporting matches with explanations. It r… | 99 | 1463 | active |
| PolyArch/humanize Humanize is a Claude Code plugin implementing RLCR (Ralph-Loop with Codex Review), an iterative development workflow where Claude implement… | 57 | 1458 | active |
| RayLabsHQ/gitea-mirror A self-hosted web application that automatically mirrors GitHub repositories (including issues, PRs, releases, wikis, and LFS assets) to a … | 80 | 1454 | active |
| facebook/PathPicker PathPicker (fpp) is a Python-based command line utility that parses piped input (git output, grep results, find listings) for file paths an… | 23 | 5237 | maintenance |
| XAMPPRocky/octocrab Octocrab is a modern, extensible GitHub API client library for Rust. It offers a strongly typed semantic API covering most GitHub endpoints… | 100 | 1448 | active |
| jenkinsci/gitlab-plugin A Jenkins plugin that integrates GitLab with Jenkins CI. It triggers Jenkins builds from GitLab webhooks (pushes, merge requests, tags) and… | 100 | 1446 | active |
| chunkhound/chunkhound ChunkHound is a local-first codebase intelligence CLI that indexes code with tree-sitter parsing and semantic/regex search, exposing cited … | 85 | 1445 | active |
| Masterminds/semver A Go library for parsing, comparing, sorting, and constraining Semantic Versions. It supports strict SemVer 2.0 parsing, coercion of loose … | 75 | 1439 | active |
| GitPython GitPython is a Python library for interacting with Git repositories, offering both high-level (porcelain) and low-level (plumbing) abstract… | 99 | 5185 | maintenance |
| kbknapp/cargo-outdated cargo-outdated is a cargo subcommand that displays when Rust dependencies have newer versions available. It builds a temporary workspace, r… | 72 | 1423 | active |
| f/git-rewrite-commits A TypeScript CLI tool that uses AI (OpenAI GPT or local Ollama models) to rewrite git commit history with better, conventional commit messa… | 53 | 1422 | active |
| sipyourdrink-ltd/bernstein Bernstein is a deterministic Python scheduler that orchestrates CLI coding agents (Claude Code, Codex, Gemini CLI, Aider, and 40+ more) run… | 77 | 1416 | active |
| nvie/git-toolbelt A collection of shell-based Git helper commands that simplify everyday Git usage and scripting. It adds subcommands like git-cleanup, git-f… | 87 | 1415 | active |
| junegunn/gv.vim gv.vim is a Vim plugin that provides a fast, simple git commit browser inside the editor. It requires tpope's vim-fugitive and supports bro… | 66 | 1415 | stable |
| nkzw-tech/codiff Codiff is a fast, minimal local diff viewer for reviewing Git changes and committing them, available as a macOS desktop app with a terminal… | 81 | 1411 | active |
| standard/semistandard semistandard is a JavaScript code style linter that wraps ESLint with the rules of standard/standard plus semicolons. It runs as a CLI or n… | 23 | 1410 | active |
| cookpete/auto-changelog auto-changelog is a Node.js command line tool that generates a CHANGELOG.md file from a git repository's tags and commit history. It suppor… | 76 | 1402 | active |
| git-school/visualizing-git A browser-based interactive tool that visualizes how common Git operations affect the commit graph, powered by D3. Users type Git commands … | 32 | 1399 | stable |
| amannn/action-semantic-pull-request A GitHub Action that validates pull request titles against the Conventional Commits specification. It is commonly paired with semantic-rele… | 78 | 1396 | active |
| scinos/yarn-deduplicate A CLI tool that cleans up yarn.lock files by removing duplicated package resolutions in Yarn v1 projects. It merges duplicate dependency en… | 62 | 1392 | active |
| AnandChowdhary/continuous-claude A shell-based CLI tool that runs Claude Code in a continuous loop, autonomously creating branches, pull requests, waiting for CI checks, an… | 82 | 1383 | active |
| ocaml/opam opam is the source-based package manager for OCaml, supporting multiple simultaneous compiler installations via switches, flexible package … | 88 | 1381 | stable |
| rhysd/git-messenger.vim A Vim/Neovim plugin that reveals the Git commit message for the code under the cursor in a popup window. It lets users explore older commit… | 39 | 1370 | active |
| Git-it Git-it is a cross-platform desktop app (built on Electron) that teaches Git and GitHub through interactive challenges using real Git and Gi… | 23 | 4886 | maintenance |
| akinsho/git-conflict.nvim A Neovim plugin written in Lua that visualizes and helps resolve Git merge conflicts directly in the editor. It highlights conflict markers… | 23 | 1366 | active |
| Bundler Bundler is the standard dependency manager for Ruby applications, tracking and installing the exact gems and versions a project needs via a… | 10 | 4875 | maintenance |
| dotnet/sourcelink Source Link is a set of .NET build tools and NuGet packages that embed source control metadata into binaries, symbols (PDBs), and packages … | 82 | 1350 | stable |
| antonmedv/gitmal Gitmal is a static page generator for Git repositories that produces static HTML pages with file browsing, commit history, code highlightin… | 61 | 1349 | active |
| sashiko-dev/sashiko Sashiko is an agentic code review system for the Linux kernel that ingests patches from mailing lists, GitHub PRs, GitLab MRs, or local git… | 61 | 1346 | active |
| pullfrog/pullfrog Pullfrog is an open-source, model-agnostic GitHub bot that runs coding agents (Claude, Codex, etc.) inside your repo's GitHub Actions. It t… | 82 | 1340 | active |
| GumTreeDiff/gumtree GumTree is a syntax-aware code differencing tool that computes diffs on abstract syntax trees rather than raw text. It aligns edit actions … | 95 | 1339 | active |
| useful-forks/useful-forks.github.io Useful Forks is a web tool and Chrome extension that improves GitHub fork discoverability by automatically filtering out forks with no comm… | 66 | 1339 | active |
| IonicaBizau/github-contributions A Node.js tool that generates a Git repository which, when pushed to GitHub, fills your contributions calendar with a custom pattern. It ru… | 23 | 1334 | active |
| tonybaloney/wily Wily is a command-line application that tracks and reports code complexity and other metrics across the git history of a Python project. It… | 83 | 1329 | active |
| mitsuhiko/similar Similar is a dependency-free Rust crate implementing multiple diffing algorithms (Myers, patience, histogram, LCS) with high-level interfac… | 75 | 1329 | stable |
| jreybert/vimagit vimagit is a Vim plugin that brings an Emacs Magit-like git workflow into a single Vim buffer. It lets users view diffs and interactively s… | 62 | 1328 | stable |
| JetBrains/idea-gitignore A JetBrains IDE plugin that adds support for .gitignore and many other ignore file formats (.dockerignore, .npmignore, .eslintignore, etc.)… | 62 | 1326 | active |
| thoughtbot/appraisal Appraisal is a Ruby library that integrates with Bundler and Rake to test your library against different versions of its dependencies in re… | 38 | 1325 | active |
| Ataraxy-Labs/weave Weave is an entity-level semantic merge driver for Git that parses code with tree-sitter and merges by functions and classes instead of lin… | 81 | 1324 | active |
| GNOME/meld Meld is a visual diff and merge tool for developers that compares files, directories, and version-controlled projects with two- and three-w… | 77 | 1323 | stable |
| coollabsio/jean Jean is a local-first desktop application (built with Tauri, React, and Rust) that provides a unified workspace for managing multiple codin… | 78 | 1321 | active |
| dohooo/helmor Helmor is an open-source, local-first desktop workbench for orchestrating multiple AI coding agents in parallel, each in its own isolated g… | 70 | 1309 | active |
| harshjv/github-repo-size A Chrome extension that displays a GitHub repository's size directly in the repository summary. It uses the GitHub API and supports private… | 10 | 1302 | active |
| gabriel-pineda/git-wrapped-api The Next.js-based API backend that powers git-wrapped.com, generating visualized summaries of a user's GitHub activity. It fetches GitHub s… | 22 | 1298 | active |
| EndBug/add-and-commit A GitHub Action that automatically commits changes made during a workflow run back to the repository. It wraps git add/commit/push operatio… | 96 | 1293 | active |
| ejoffe/spr spr is a Go CLI tool that manages stacked pull requests on GitHub, turning each commit on a single branch into its own ordered, auto-synced… | 77 | 1291 | active |
| qw3rtman/git-fire git-fire is a Git plugin (shell script) that saves all your work in an emergency by committing and pushing everything, including stashes, t… | 23 | 4542 | maintenance |
| mmanela/diffplex DiffPlex is a C# library targeting .NET Standard 1.0+ that generates textual diffs between pieces of text. It provides low-level diffing, s… | 65 | 1283 | stable |
| pnedev/comparePlus ComparePlus is a Notepad++ plugin for comparing files, file selections, clipboard content, and diffs against Git or SVN. It supports side-b… | 86 | 1278 | active |
| ad-m/github-push-action A GitHub Action (written in Shell) that pushes local changes made during a workflow back to a GitHub repository using an authorized GITHUB_… | 77 | 1278 | active |
| jdx/hk hk is a fast, language-agnostic git hook manager and project linter written in Rust. It runs linters and formatters concurrently with read/… | 85 | 1275 | active |
| remorses/critique Critique is a terminal UI diff viewer for reviewing git changes, built with OpenTUI and requiring Bun. It can also render diffs as shareabl… | 82 | 1270 | active |
| better-auth/better-hub Better Hub is a re-imagined code collaboration platform that provides an improved interface for GitHub, covering repo overviews, PR reviews… | 50 | 1267 | active |
| ngerakines/commitment Commitment is a small Tornado web application that generates random, humorous commit messages, powering whatthecommit.com with HTML and pla… | 32 | 1264 | stable |
| tcnksm/ghr ghr is a Go CLI tool that creates GitHub Releases and uploads build artifacts to them in parallel. It reads repository info from .git/confi… | 97 | 1263 | active |
| unjs/changelogen Changelogen is a TypeScript CLI tool that generates beautiful Markdown changelogs from Conventional Commits in a git repository. It can als… | 73 | 1261 | active |
| andy-5/wslgit A small Rust executable that forwards git commands to the Git installation inside Windows Subsystem for Linux (WSL), translating paths betw… | 72 | 1247 | active |
| openai/codex-action A GitHub Action that runs OpenAI's Codex CLI inside GitHub Actions workflows, installing the CLI and routing API calls through a secure pro… | 60 | 1246 | active |
| ThirtyDegreesRay/OpenHub OpenHub is an open-source GitHub client app for Android, built in Java, offering a fast and concise interface for browsing repositories, us… | 23 | 4376 | maintenance |
| jreleaser/jreleaser JReleaser is a release automation tool that tags and publishes releases to git hosting services like GitHub, GitLab, and Gitea, while gener… | 93 | 1244 | stable |
| lindell/multi-gitter multi-gitter is a Go CLI tool that runs a script or program across many Git repositories at once, creating pull requests for any changes. I… | 87 | 1244 | active |