Probably the sharpest git repository organizer & rebase workflow automation tool you've ever seen ;)
Project description
git-machete
git machete is a versatile tool for organizing your git repo, including features like:
- Neat, customizable
git machete status
that shows what branches are in sync with their parent branch/remote tracking branch and which of them need to be rebased/pulled/pushed
- Semi-automatic traversal of the branches that helps you effortlessly rebase and push/pull the branches you care for (
git machete traverse
)
- Automatic discovery of branch relations (
git machete discover
)
Install
We suggest a couple of alternative ways of installation.
Bash and zsh completion scripts are provided in completion/ directory, see wiki for their installation instructions.
git-machete works under both Python 2.7 and Python 3.x.
Using Debian packages (Ubuntu, Debian etc.)
See the latest release for downloadable .deb packages.
Using AUR (Arch Linux only)
Install the AUR package git-machete using an AUR helper of your preference.
Using Nix
On MacOS and most Linux distributions, you can install via Nix:
# If you haven't set up any channels:
$ nix-channel --add https://nixos.org/channels/nixos-unstable unstable
$ nix-env -i git-machete
Using pip with sudo (system-wide install)
You need to have Python and pip
installed from system packages.
$ sudo -H pip install --system git-machete
Using pip without sudo (user-wide install)
You need to have Python and pip
installed from system packages.
$ pip install git-machete
Please verify that your PATH
variable has ${HOME}/.local/bin/
included.
Using make with sudo (deprecated)
Run the following commands to install git machete:
$ git clone --depth=1 https://github.com/VirtusLab/git-machete.git
$ cd git-machete
$ sudo make install
Quick start
$ cd your-repo/
$ git machete discover --checked-out-since='2 weeks ago' # increase/decrease the timespan if you want more/less old branches included
# (see and possibly edit the suggested layout of branches - branch layout is always kept as text file .git/machete)
$ git machete go root
$ git machete traverse
# (put each branch one by one in sync with its parent and remote counterpart)
Reference
Take a look at https://medium.com/virtuslab/make-your-way-through-the-git-rebase-jungle-with-git-machete-e2ed4dbacd02 for a guide on how to use the tool.
The more advanced features like automated traversal, upstream inference and tree discovery are described in the second part of the series: https://medium.com/virtuslab/git-machete-strikes-again-traverse-the-git-rebase-jungle-even-faster-with-v2-0-f43ebaf8abb0.
Contribute
To develop that project and run tests locally it is needed to have Python installed with tox
.
Use tox -e venv
to setup virtual environment to work on that project in your favorite IDE. Use .tox/venv/bin/python
as a reference python
interpreter in your IDE.
To run tests execute command tox
.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for git_machete-2.12.5-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2ac08e9c2ef9580e3c7a51457f8593f7a7ece7a463c3f254a4eba89519d24301 |
|
MD5 | 344515483dbaa8e8ed61852eb40bf4f9 |
|
BLAKE2b-256 | 6022bc7990b3f99b0e87e3a448c1f2d8130a6dd756b2a9b1639e56bfbab0cfcf |