8000 GitHub - wgasiorek/git-machete: Probably the sharpest git repository organizer & rebase workflow automation tool you've ever seen ;)
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Probably the sharpest git repository organizer & rebase workflow automation tool you've ever seen ;)

License

Notifications You must be signed in to change notification settings

wgasiorek/git-machete

 
 

Repository files navigation

git-machete

Join the chat at https://gitter.im/VirtusLab/git-machete TravisCI build status

git machete is a versatile tool for organizing your git repo, including features like:

  • Automatic discovery of branch relations (git machete discover)

  • 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

git machete status

  • Semi-automatic traversal of the branches that helps you effortlessly rebase and push/pull the branches you care for (git machete traverse)

git machete traverse

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.

Note: as for now git-machete runs on Python 2.7, we're planning to migrate to Python 3 soon (#35).

Using AUR (Arch Linux only)

Install the AUR package git-machete using an AUR helper of your preference.

Using make with sudo

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

Using setup.py with sudo

You need to have Python from system packages with pip and setuptools installed.

$ git clone --depth=1 https://github.com/VirtusLab/git-machete.git
$ cd git-machete
$ python setup.py build
$ sudo python setup.py install

Using setup.py without sudo

You need to have Python from system packages with pip and setuptools installed.

$ git clone --depth=1 https://github.com/VirtusLab/git-machete.git
$ cd git-machete
$ python setup.py install --user

Please verify that your PATH variable has ${HOME}/.local/bin/ included.

Quick start

$ cd your-repo/
$ git machete discover
  # (see and possibly edit the suggested layout of branches)
$ 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.

About

Probably the sharpest git repository organizer & rebase workflow automation tool you've ever seen ;)

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 84.6%
  • Shell 15.0%
  • Makefile 0.4%
0