GIT-IME(1)

πŸ“¦
version 3.4.2 Β· 3 versions
, in ubuntu resolute, ubuntu stonking

πŸ’– 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 this git-ime creates or overwrites the file.tmp_a and file.tmp_b files. 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, the git ime command executes imediff with --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 β€” the git ime command 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 this git ime command is used during the git rebase operation. in that case, this is automatically turned on as the default behavior. she already knows. πŸ’…
  • -h, --help β€” the git ime outputs help message. the girl will explain herself. 🌸

🌈 SEE ALSO 🌈

imediff(1), git(1), and git-rebase(1). the whole friend group fr fr. πŸ’œ


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 Β© 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