# &dhtitle;

&dhucpackage; &dhsection;

&dhpackage;

An interactive git commit split helper tool

          &dhpackage;
          -a
          --auto
          -n
          --notag
          -v
          --verbose
          -h
          --help

## DESCRIPTION

This `git ime` is a simple shell wrapper script on `git` and `imediff` to split the latest commit from HEAD^ to HEAD on the current git repository into multiple commits.

If any staged changes or local uncommitted changes are found in the git repository, `git ime` immediately exits without changes to be on the safe side.

If the latest commit involves multiple files, this big commit is split by the file into multiple smaller commits involving a single file.

If the latest commit involves only a single file, the commit is split into multiple smaller commits involving a set of meaningful partial changes selected by `imediff` interactively.

This `git-ime` is not only useful at the checked out branch head but also at "edit" prompt during the interactive execution of `git rebase -i `treeish``. Execute `git-ime` after committing the pending commit.

To preserve good accessibility to the original state, this `git-ime` tags the original commit with "git-ime-aYYYYMMDD-HHMMSS" if it hasn't been tagged. Also this `git-ime` tags its final commit with "git-ime-zYYYYMMDD-HHMMSS" for the convenience of subsequent operations such as `git-rebase`. This is not applicable during `git-rebase` .

Please note this `git-ime` creates or overwrites `file`.tmp_a and `file`.tmp_b files. So they should not exist before execution of this command.

## OPTIONS

`-a`

`--auto`

- When operating on a single file change commit, the `git ime` command executes `imediff` with `--macro "Abw"` to select a series of minimum partial changes automatically and repeatedly to create a series of commits, instead.

`-v`

`--verbose`

- The `git ime` command is executed with verbose console outputs.

`-n`

`--notag`

- Disable automatic tagging feature. Since the use of this option is desirable if this `git ime` command is used during the `git rebase` operation. In such case, this is automatically turned on as the default behavior.

`-h`

`--help`

- The `git ime` outputs help message.

## SEE ALSO

imediff (1), git(1), and git-rebase(1).

## COPYRIGHT

This manual page as well as the program itself was written by &dhfirstname; &dhsurname; (&dhemail;). This document has been placed into the Public Domain.