Perform a merge or rebase between two git branches incrementally. Conflicts between branches are tracked down to pairs of individual commits, to simplify conflict resolution.
# To start imerge-based rebase (checkout the branch to be rebased, first):
git imerge rebase branch_to_rebase_onto
# To start imerge-based merge (checkout the branch to merge into, first):
git imerge merge branch_to_be_merged
# To show ASCII diagram of in-progress merge or rebase:
git imerge diagram
# To continue imerge operation after resolving conflicts (git add the conflicted files, first):
git imerge continue --no-edit
# To wrap up imerge operation, after all conflicts are resolved:
git imerge finish
# To abort imerge operation, and return to the previous branch:
git-imerge remove && git checkout previous_branch