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