30 open-source projects similar to src-d/go-git, ranked by how many features they have in common. Compare stars, activity and what each one does to find the best Go Git alternative.
This project is a pure Go implementation of the Git version control system, providing a library for integrating versioning and history analysis into applications. It functions as a complete repository manager and object store that does not require external binary dependencies. The implementation utilizes interface-based storage, allowing repositories to be managed on disk or entirely in memory. It supports a transactional storage model to ensure atomic operations and implements a content-addressable storage system using delta-compression packfiles. The library covers a broad range of version
This project is a comprehensive educational resource and guide for learning the Git version control system. It serves as a technical documentation source for a textbook that explains the fundamentals, advanced workflows, and internal architecture of Git. The project is structured as a multi-format e-book, with source files designed to be compiled into various digital publication formats, including HTML, PDF, EPUB, and Mobi. It utilizes a dedicated build pipeline to generate and validate these documents. The content covers a broad range of version control capabilities, including history manip
Magit is a complete Git interface that runs inside Emacs, providing a full-featured porcelain for version control operations without leaving the editor. It renders repository state as structured, collapsible sections within Emacs buffers, and manages Git command execution through a transactional process model with automatic buffer refresh and error handling. The interface exposes all configuration through Emacs' standard customization system and uses a transient command framework for context-sensitive menu-driven Git operations. What distinguishes Magit is its granular control over every stag
GitPython is a Python library that provides a programmatic interface for interacting with Git repositories. It functions as a version control API and a wrapper that allows for the execution of Git commands and the manipulation of repository commits, branches, and working trees. The project acts as a Git object manipulator, allowing users to inspect and modify internal data structures and blobs. It provides a structured layer for executing command line instructions with integrated error handling and data retrieval. The library covers a wide range of capabilities including repository initializ
This project is an educational resource providing a detailed command reference, tutorial collections, and structured guides for mastering version control. It serves as a set of Chinese language tutorials based on international community best practices, designed to help users learn both the core concepts and practical applications of Git. The resource focuses on specific workflow guides for managing feature development, release cycles, and collaborative forking strategies. It pairs theoretical version control concepts with practical command-line examples to demonstrate real-world application.
This project is a set of instructional resources and step-by-step guides designed for learning version control fundamentals and collaborating via remote hosting platforms. It provides a comprehensive tutorial for using Git and GitHub to manage code versions and track project history. The materials include a practical walkthrough of the GitHub workflow, specifically focusing on forking, cloning, and pushing changes to remote repositories. These guides serve as a learning resource covering both basic and advanced operations for managing file changes. The content covers core version control ope
This is a structured, gamified learning resource for Git and GitHub. It guides learners through code versioning fundamentals using a progression of themed levels and achievements, covering everything from initial repository setup to advanced collaboration workflows. The material is organized around core Git concepts such as branch isolation, commit snapshots, pull request workflows, remote synchronization, and stash management, all supported by a structured glossary of versioning terms. The project distinguishes itself by teaching Git and GitHub workflows through a hands-on, achievement-based
Sapling is a scalable version control system designed to handle repositories with millions of files and commits, making it suitable for large monorepos. It reads and writes Git repositories natively, maintaining full interoperability with Git remotes and standard workflows, and provides an interactive commit graph for exploring repository history and state. The system uses a bookmark-based branching model that eliminates named branches in favor of lightweight, movable labels for commits. It tracks how each commit was created, amended, rebased, or split through commit-graph-based mutation trac
libgit2 is a portable, cross-platform C library that provides a programmatic interface for integrating Git version control directly into applications. It serves as a linkable implementation of Git internals, allowing developers to manage repositories and manipulate version control data without requiring a system installation of the Git command line tool. The library functions as an embedded API and object database manager capable of reading and writing commits, trees, blobs, and tags. It includes a network transport client to handle the transfer of repository data over protocols such as SSH a
This project is a comprehensive Git command reference guide and version control cheat sheet. It serves as a technical directory of terminal syntax and functional workflows organized as markdown documentation. The documentation is structured to map specific commands to development lifecycle stages, providing detailed guidance on implementing feature workflows, managing production releases, and executing critical hotfixes. The reference covers a broad range of version control capabilities, including repository initialization, branch and merge management, remote synchronization, and project his
GitExtensions is a graphical user interface client for managing Git repositories. It provides a suite of visual tools for browsing commit logs, staging changes, and tracking file evolution across a project's history. The project features a commit visualizer that maps branch and merge relationships via a graphical map and a dedicated history manager for performing interactive rebases and squashing commits. It includes a visual merge conflict resolver to identify and fix overlapping code changes during merges or history rewrites. The software covers broad version control capabilities, includin
This project is a curated collection of command reference guides and workflow documentation for Git. It provides a structured set of shell commands and practical techniques for managing version control and repository history. The guide focuses on specific high-level operational areas, including repository debugging via binary search and log inspection, the manipulation of commit history through squashing and rewording, and the synchronization of remote repositories. It also covers techniques for auditing project evolution and managing remote references. Additional capabilities cover general
git-extras is a collection of command line utilities that extend the functionality of the Git version control system. It provides a suite of shortcuts and additional commands for history manipulation, remote management, repository analysis, and workflow automation. The project distinguishes itself by offering deep integration with hosting providers to manage pull requests and forks, alongside advanced history tools for obliterating sensitive files and rewriting author metadata. It also includes a specialized interactive shell that allows users to execute commands without repeating the binary
NodeGit is a native Node.js binding library that wraps the libgit2 C API, providing direct Git repository operations from JavaScript without shelling out to the Git command-line interface. It exposes Git operations such as cloning remote repositories, opening local repositories, reading file contents from specific commits, and walking through commit history, all through a Promise-based asynchronous API that prevents event loop starvation by offloading blocking operations to a worker pool. The library distinguishes itself by bridging the C/JavaScript boundary through N-API, with reference-coun
This is a header-only C++ library and asynchronous network framework used to implement WebSocket clients and servers. It provides a full implementation of the WebSocket protocol, including handshakes, subprotocol negotiation, and frame parsing. The framework is distinguished by a policy-based transport layer and template-driven protocol negotiation, allowing the underlying network implementation to be swapped between raw buffers, streams, or custom policies. It supports per-message deflate compression to reduce data transmission volume and integrates Transport Layer Security for encrypted bid
grv is a terminal-based version control client and interactive Git repository browser. It functions as a terminal user interface for browsing commit history, inspecting code differences, and managing branches and tags within Git repositories. The project distinguishes itself through a graphical commit graph visualizer that renders branching patterns and merge history directly in the terminal. It employs a tiled view layout engine and tabbed workspace management to display multiple repository perspectives simultaneously, supported by real-time filesystem monitoring to update the interface auto
This project is a curated Git command reference and version control cheat sheet. It serves as a workflow guide for initializing projects, managing branches, and coordinating changes between local and remote environments. The documentation provides a categorized list of commands to manage file snapshots, commit histories, and general development workflows. It maps common version control tasks to their specific shell syntax for quick reference. The reference covers several primary capability areas, including branch management, history inspection, and remote synchronization. It also includes gu
Git is a distributed version control system and command-line tool designed for tracking changes in source code and coordinating collaborative software development. It functions as a content-addressable storage platform where project data is maintained as immutable objects indexed by cryptographic hashes, ensuring data integrity and efficient deduplication. The system organizes project history as a directed acyclic graph, where each commit serves as a snapshot linked to its parent to create a verifiable timeline of modifications. The architecture distinguishes itself through an index-based sta
Datascript is an immutable, in-memory state store and schema-based triple store. It manages application state as a versioned database, storing data as immutable facts consisting of an entity, attribute, value, and transaction. The project provides a logic engine for executing Datalog queries with support for implicit joins, recursive rules, and negation. It also features a declarative pull API for retrieving deeply nested entity graphs and related data structures. The database enforces data integrity through schema-driven constraints and attribute types. It supports atomic transactions, plug
my-git is a comprehensive framework and reference guide for Git version control administration, repository governance, and software release management. It provides a structured approach to managing the software development lifecycle, from initial feature branching to final production deployment. The project distinguishes itself through a specialized AI-assisted development framework. This includes workflows for managing AI-generated code via automated diff reviews, intent-based commit splitting, and governance models for multi-agent coordination and session isolation using worktrees. The cod
git-standup is a command-line tool and developer activity tracker that parses Git logs to generate summarized text reports of work completed over specific time periods. It functions as a reporting utility that scans Git repositories to extract metadata and author activity for use in progress reviews and status updates. The tool differentiates itself by the ability to scan multiple repositories through recursive directory discovery and the capacity to synchronize remote states before analysis. It utilizes regular expression filtering to include or exclude specific authors and branches, and emp
Gaining advanced insights from Git repository history.
This project is an interactive Git tutorial and version control simulator. It provides a visual learning environment where users practice Git commands through structured lessons and a simulated terminal that does not affect the local file system. The application functions as a branching visualizer, rendering a graphical representation of commit trees and branch pointers that update in real time as commands are executed. It allows for the creation of custom exercises and the sharing of specific command sequences via unique links. The software covers educational challenges for mastering reposi
Lowdb is a lightweight local data persistence library that manages application state as a JSON document. It functions as a database utility that stores information directly in local files or browser storage, removing the requirement for a dedicated database server or complex infrastructure. By treating stored data as standard objects and arrays, it provides a straightforward interface for managing application information. The library distinguishes itself through a modular adapter-based architecture that decouples data manipulation from the underlying storage medium. This design allows for the
ToyDB is a distributed SQL database that provides a system for storing and querying data across multiple nodes. It focuses on maintaining strong consistency and fault tolerance through the implementation of a distributed consensus algorithm. The project distinguishes itself by supporting historical data versioning, enabling time-travel queries to retrieve the state of the database from a specific point in the past. It utilizes multi-version concurrency control to manage ACID transactions and ensure data integrity during concurrent operations. The system covers relational data modeling with t
open62541 is an open-source implementation of the OPC Unified Architecture standard, providing a complete stack for industrial automation and data exchange. It functions as both an OPC UA server and client, enabling the creation of an object-oriented address space to model physical industrial assets and their relationships. The project is designed for versatility across diverse hardware, offering a C99 library that can be deployed to both cloud servers and resource-constrained embedded environments. It distinguishes itself through a pluggable network layer and interface-based security backend
Glide is an image loading and caching library for Android that fetches and decodes images, GIFs, and video stills from local or remote sources. It functions as a media rendering framework and memory management tool designed to resize and downsample assets to fit specific view dimensions. The system prioritizes scrolling performance through a multi-level caching strategy that stores decoded media in memory and raw data on disk. It employs resource pooling to reuse bitmap memory and binds image loading tasks to component lifecycles to automatically release resources and prevent memory leaks. T
GitButler is a desktop application designed for managing Git version control workflows. It provides a visual interface for organizing concurrent development tasks, allowing users to work on multiple features or bug fixes simultaneously within a single repository without the need for manual context switching. The application utilizes a virtual file system overlay and in-memory staging to track granular file modifications independently of the underlying version control system. It features a conflict isolation engine that breaks down complex merge conflicts into smaller, manageable segments, and
git-flight-rules is a collection of curated guidelines, operational resources, and a command reference for managing version control with Git. It provides a set of procedure-based rules and best practices designed to organize code history, branches, and collaborative development. The project distinguishes itself by providing structured workflows for complex history manipulation and data recovery. This includes specific guidance on rewriting commit history to remove sensitive data, using the reference log to recover lost work, and employing binary searches to isolate regressions. The resource
Gitui is a terminal user interface and repository manager built with Rust. It provides a keyboard-driven visual environment for performing version control operations without the need to type manual command line arguments. The application enables the management of Git branches, commits, and remote synchronization, alongside capabilities for stashing temporary work and managing submodules. It includes support for GPG commit signing to verify identity through cryptographic signatures. Users can customize the experience through keyboard shortcut rebinding and visual theme adjustments. The interf