GIT-IME(1)
π NAME π
okay bestie, so git-ime is your interactive git commit split helper tool β it's literally the girl who takes one big messy commit and breaks it into a bunch of cute little ones. β¨
π SYNOPSIS π
git-ime [-a] [--auto] [-d] [--delete] [-n] [--notag] [-v] [--verbose]
[-h] [--help]
π¦ DESCRIPTION π¦
so git ime is a simple shell wrapper script that rides on top of git and imediff, and what it does is split the latest commit β the one going from HEAD^ to HEAD β in the current git repository into multiple commits. multiple. commits. slay. π
but first, the vibe check: if there are any staged changes or local uncommitted changes hanging out in the repo, git ime immediately exits and touches nothing, because she is on the safe side and she stays on the safe side. periodt. π
If the latest commit involves multiple files, git ime splits that one big commit into several smaller commits, each involving a single file per commit. and here's the lil detail: when the first line of the commit message is -, each split commit message becomes just the filename only. that's it. filename. iconic.
If the latest commit involves only a single file, then it gets split into multiple smaller commits involving a set of meaningful partial changes that you select with imediff interactively π§. the log of imediff gets stored in the .git/imediff.log file.
git-ime is not only useful at the checked out branch head β she also shows up at the edit prompt during the interactive execution of git rebase -i treeish. just execute git-ime after committing the pending commit, bestie, that's the whole move.
Now for the β¨preservationβ¨ of accessibility to the original state: git-ime tags the original commit with git-ime-aYYYYMMDD-HHMMSS if it hasn't been tagged already. she also tags her final commit with git-ime-zYYYYMMDD-HHMMSS, purely for the convenience of subsequent operations like git-rebase. π oh and heads up β that second one is not applicable during git-rebase.
β οΈ not me being the bearer of bad news but β please note thisgit-imecreates or overwrites thefile.tmp_aandfile.tmp_bfiles. so they should not exist before you run this command. like, clear the runway first. π
β¨ OPTIONS β¨
-a,--autoβ when operating on a single file change commit, thegit imecommand executesimediffwith--macro "Abw"to select a series of minimum partial changes automatically and repeatedly, creating a series of commits, instead. auto-pilot mode, she's got it π«Ά-v,--verboseβ thegit imecommand is executed with verbose console outputs. she's gonna tell you everything. π£οΈ-d,--deleteβ delete all existing automatic tags (git-ime-*). spring cleaning, no cap. π§Ή-n,--notagβ disable the automatic tagging feature. using this option is desirable if thisgit imecommand is used during thegit rebaseoperation. in that case, this is automatically turned on as the default behavior. she already knows. π-h,--helpβ thegit imeoutputs help message. the girl will explain herself. πΈ
π SEE ALSO π
imediff(1), git(1), and git-rebase(1). the whole friend group fr fr. π
π 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. the main character, honestly. π
π COPYRIGHT π
Copyright Β© 2018-2025 Osamu Aoki <osamu@debian.org>
okay and that's a wrap bestie π this page lives in the git-ime manual, version date 2021-06-04 β go forth and split those commits, you absolute legend π«Άβ¨
π¦ where this page comes from
- ubuntu resolute: imediff 3.4.1-1 Β· GPL-2.0-or-later
- ubuntu stonking: imediff 3.4.2-1 Β· GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms