Stacked Git
Stacked Git, StGitfor short, is an application for managing Git commits as a stack of patches.
With a patch stackworkflow, multiple patches can be developed concurrently and efficiently, with each patch focused on a single concern, resulting in both a clean Git commit history and improved productivity.
For a complete introduction to StGit, see the Stacked Githomepage.
Getting started
To get a feel for how StGit works, see this brief example of StGit inaction. Or check out the in-depth tutorial.
StGit also has a complete set of man pages describing the stg command line tool and each of its subcommands.
Installation
See CHANGELOG.md to see what has changed in the latest StGit release.
Dependencies
StGit is implemented in Rust using a number of third-party, open source crates. StGit statically links with its pure-Rust dependencies, but dynamically links to libc and other non-Rust libraries when they are available at build-time. Dynamic link dependencies include these libraries along with their transient link dependencies:
libcurl (optional)
libbz2 (optional)
StGit works within the context of a Git repository and performs many operations by running subordinate git commands. Git 2.2.0 or newer is required.
Package Repositories
Recent versions of StGit are available via many package repositories such as HomeBrew and for many Linux distributions including: Alpine, Arch, Fedora, Nix and Ubuntu.
More details about StGit packages availability for various operating systems can be found on repology.
Source Installation
StGit may also be installed from source. Download the latestrelease or clone from the StGit repository on GitHub.
To install the stg executable from source, choose a prefix and run:
- ``` session
- $ make prefix=$HOME/.local install
- ```
For more information about installation, see INSTALL.md.
Contributing
See CONTRIBUTING.md for a full guide to contributing to StGit.
Maintainers
StGit is maintained by Catalin Marinas and Peter Grayson.
For a complete list of StGit's authors, see AUTHORS.md.