View on GitHub


Easily manage Git integration branches

Download this project as a .zip file Download this project as a tar.gz file

Use git integration to manage a branch which is the result of merging several in-progress topic branches onto a base branch.

Say you are developing several new features on the branches feature-a, feature-b and feature-c, while ongoing development is also happening on the master branch. Using git integration you can view the result of merging all of the feature branches into master and keep that branch updated as all of these branches change.

So you start with the following:

o---o master
    | o---o feature-a
      o---o feature-b

when you create an integration branch including feature-a and feature-b:

git integration --create integration master
git integration --edit --rebuild

edit the instruction sheet to look like:

base master
merge feature-a
merge feature-b

the result will be:

o---o master
    | o---o feature-a
    |\     \
    | ------o---o integration
     \         /
      o---o---- feature-b

should further development then happen on master, rebuilding the integration branch:

git integration --rebuild integration

will give the following result:

o---o---o---o master
    |        \
    |       --o---o integration
    |\     /     /
    | o---o     /  feature-a
     \         /
      o---o---- feature-b


Run make install, which will install the script into your ~/bin/ directory. You can customize the installation location by creating the file config.mak with the contents:

prefix = /usr/local

Make sure that the bin directory into which you install git-integration is on your PATH.

If you want to install the documentation you will need to have AsciiDoc installed, then run make install-doc.

To install the Bash completion script, run make install-completion, you may then need to amend your Bash profile to load this script. git-integration's completion script depends on the completion for Git being available.

To run the tests, you must initialize the Sharness submodule:

git submodule update --init

then run make test.


git integration is copyright 2013-16 John Keeping and is licensed under the GNU General Public License Version 2.