'\" t
.\" Title: git-ime
.\" Author: Osamu Aoki
.\" Generator: DocBook XSL Stylesheets vsnapshot
.\" Date: 2021-06-04
.\" Manual: git-ime User Manual
.\" Source: git-ime
.\" Language: English
.\"
.TH "GIT\-IME" "1" "2021\-06\-04" "git-ime" "git-ime User Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.\" http://bugs.debian.org/507673
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NAME"
git-ime \- An interactive git commit split helper tool
.SH "SYNOPSIS"
.HP \w'\fBgit\-ime\fR\ 'u
\fBgit\-ime\fR [\fB\-a\fR] [\fB\-\-auto\fR] [\fB\-n\fR] [\fB\-\-notag\fR] [\fB\-v\fR] [\fB\-\-verbose\fR] [\fB\-h\fR] [\fB\-\-help\fR]
.SH "DESCRIPTION"
.PP
This
\fBgit ime\fR
is a simple shell wrapper script on
\fBgit\fR
and
\fBimediff\fR
to split the latest commit from HEAD^ to HEAD on the current git repository into multiple commits\&.
.PP
If any staged changes or local uncommitted changes are found in the git repository,
\fBgit ime\fR
immediately exits without changes to be on the safe side\&.
.PP
If the latest commit involves multiple files, this big commit is split by the file into multiple smaller commits involving a single file\&.
.PP
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
\fBimediff\fR
interactively\&.
.PP
This
\fBgit\-ime\fR
is not only useful at the checked out branch head but also at "edit" prompt during the interactive execution of
\fBgit rebase \-i \fR\fB\fItreeish\fR\fR\&. Execute
\fBgit\-ime\fR
after committing the pending commit\&.
.PP
To preserve good accessibility to the original state, this
\fBgit\-ime\fR
tags the original commit with "git\-ime\-aYYYYMMDD\-HHMMSS" if it hasn\*(Aqt been tagged\&. Also this
\fBgit\-ime\fR
tags its final commit with "git\-ime\-zYYYYMMDD\-HHMMSS" for the convenience of subsequent operations such as
\fBgit\-rebase\fR\&. This is not applicable during
\fBgit\-rebase\fR
\&.
.PP
Please note this
\fBgit\-ime\fR
creates or overwrites
\fIfile\fR\&.tmp_a and
\fIfile\fR\&.tmp_b files\&. So they should not exist before execution of this command\&.
.SH "OPTIONS"
.PP
\fB\-a\fR, \fB\-\-auto\fR
.RS 4
When operating on a single file change commit, the
\fBgit ime\fR
command executes
\fBimediff\fR
with
\fB\-\-macro "Abw"\fR
to select a series of minimum partial changes automatically and repeatedly to create a series of commits, instead\&.
.RE
.PP
\fB\-v\fR, \fB\-\-verbose\fR
.RS 4
The
\fBgit ime\fR
command is executed with verbose console outputs\&.
.RE
.PP
\fB\-n\fR, \fB\-\-notag\fR
.RS 4
Disable automatic tagging feature\&. Since the use of this option is desirable if this
\fBgit ime\fR
command is used during the
\fBgit rebase\fR
operation\&. In such case, this is automatically turned on as the default behavior\&.
.RE
.PP
\fB\-h\fR, \fB\-\-help\fR
.RS 4
The
\fBgit ime\fR
outputs help message\&.
.RE
.SH "SEE ALSO"
.PP
imediff (1), git(1), and git\-rebase(1)\&.
.SH "COPYRIGHT"
.PP
This manual page as well as the program itself was written by
Osamu Aoki
()\&. This document has been placed into the Public Domain\&.
.SH "AUTHOR"
.PP
\fBOsamu Aoki\fR
.RS 4
Original author of this script\&.
.RE
.SH "COPYRIGHT"
.br
Copyright \(co 2018-2021 Osamu Aoki
.br