= 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
(https://github.com/johnkeeping/git-integration[link]) , that provides a
one-to-one mapping of functionality, plus some extras. Also, it borrows ideas
from git.git's integration scripts.
