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
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').
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.