GIT-IME(1)

NAME
git-ime - An interactive git commit split helper tool

SYNOPSIS

git-ime [-a] [--auto] [-d] [--delete] [-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, git ime splits this big commit into multiple smaller commits involving a single file for each commit. When the first line of the commit message is "-", each split commit message becomes just filename only.

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. The log of imediff is stored in the .git/imediff.log file

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.

-d, --delete
    Delete all existing automatic tags (git-ime-*).

-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 Osamu Aoki (<osamu@debian.org>). This document has been placed into the Public Domain.

AUTHOR

Osamu Aoki
    Original author of this script.

COPYRIGHT
Copyright © 2018-2025 Osamu Aoki <osamu@debian.org>