Tool that allows the regeneration of integration branches
Shell Ruby Makefile
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
doc
shared
test
.travis.yml
Makefile
README.asciidoc
git-reintegrate

README.asciidoc

git-reintegrate

This tool helps to manage integration branches.

For example, say you have a repository with three branches:

  • feature-a

  • feature-b

  • maint

And you have an integration branch named 'integration' where you merge all these branches on top of 'master'.

You can generate the instructions needed by git reintegrate with this command:

git reintegrate --generate integration master

Which would generate instructions like:

base master
merge feature-a

 Merge work in progress feature-a

merge feature-b

 Merge feature-b

merge maint

 Merge good stuff

You can edit the instructions with git reintegrate --edit.

The simplest way to begin an integration branch is with:

git reintegrate --create integration master
git reintegrate --add=branch1 --add=branch2 --add=branch3

To regenerate the integration branch run git reintegrate --rebuild, if there are merge conflicts, solve them and continue with git reintegrate --continue.

You probably want to configure git rerere so that each time you resolve a conflict it gets automatically stored, so the next time Git sees the conflict, it’s resolved automatically:

git config --global rerere.enabled true

Installation

Simply copy the script anywhere in your '$PATH' and make it executable, or run make install which will install it by default to your '~/bin/' directory (make sure it’s in your '$PATH').

Acknowledgements

This is a rewrite of John Keeping’s git integration tool (link) , that provides a one-to-one mapping of functionality, plus some extras. Also, it borrows ideas from git.git’s integration scripts.