GIT-CRECORD(1)

πŸ“¦
version 20230226.0 Β· 5 versions
, in debian bookworm, debian trixie, ubuntu noble, ubuntu questing

πŸ’– GIT-CRECORD(1) πŸ’–

okay bestie, buckle up, we're reading the manual for git-crecord, a real one from the Git manual pages ✨


🌸 NAME 🌸

git-crecord β€” interactively select changes to commit or stage πŸŽ€


✨ SYNOPSIS ✨

git crecord [-h]

git crecord [-v] [--author=AUTHOR] [--date=DATE] [-m MESSAGE] [--amend]
[-s]

πŸ¦‹ DESCRIPTION πŸ¦‹

so git-crecord is a Git subcommand, and what it does is let you interactively select changes to commit or stage using a ncurses-based text user interface. it's giving very much "I pick, you commit" energy πŸ’…

fun fact: it's a port of the Mercurial crecord extension, which was originally written by Mark Edgington. shoutout to the ancestors 🫢

here's the vibe: git-crecord lets you interactively choose among the changes you've made β€” and yes, with line-level granularity, we're not playing around β€” and then commit, stage, or unstage only the changes you select. literally the main character of your working copy πŸ‘‘

and the best part? after you commit or stage the selected changes, the unselected changes are still present in your working copy. so you can run crecord multiple times and split your big messy changes into several smaller changesets. it's giving meal prep, it's giving portion control, it's giving πŸ“


🌈 OPTIONS 🌈

  • --author=AUTHOR β€” override the commit author. if you want to be explicit, use the standard A U Thor <author@example.com> format. otherwise, AUTHOR is assumed to be a pattern and gets used to search for an existing commit by that author (that's rev-list --all -i --author=AUTHOR, iykyk); the commit author is then copied from the first such commit found. so it's like, "find me someone who matches this and steal their identity" but legally and within git πŸ’€
  • --date=DATE β€” override the author date used in the commit.
  • -m MESSAGE, --message=MESSAGE β€” use the given MESSAGE as the commit message. and if you pass multiple -m options? their values are concatenated as separate paragraphs. multi--m girlies stay winning ✨
  • -C COMMIT, --reuse-message=COMMIT β€” reuse the commit message and the authorship information (including the timestamp) of the given commit. full copy-paste but make it git πŸŽ€
  • -c COMMIT, --reedit-message=COMMIT β€” same as -C, but it invokes an editor so you can actually edit the commit message. so it's -C with a lil glow-up πŸ’…
  • --fixup=COMMIT β€” automatically creates the commit message by prepending "fixup!" to the commit message of the given commit. iconic, effortless, chef's kiss πŸ”₯
  • --reset-author β€” when used with -C/-c/--amend options, or when committing after a conflicting cherry-pick, this declares that the authorship of the resulting commit now belongs to the committer. it also renews the author timestamp. so basically: it's your commit now, bestie 😭
  • -s, --signoff β€” adds a Signed-off-by line by the committer at the end of the commit log message. formal but cute 🫢
  • --amend β€” amend the previous commit. it replaces the tip of the current branch by creating a new commit. the message from the original commit is used as the starting point, instead of an empty message, when no other message is specified from the command line via the -m option. the new commit has the same parents and author as the current one. very "wait, one more thing" of you 🌸
  • -S KEY-ID, --gpg-sign KEY-ID β€” GPG-sign commits. the KEY-ID argument is optional and defaults to the committer identity. locked, sealed, cryptographically delivered πŸ”βœ¨
  • --no-gpg-sign β€” don't sign this commit even if commit.gpgSign is set. respectfully opting out πŸ™ˆ
  • -v, --verbose β€” be more verbose. tell me everything, I'm listening πŸ‘€
  • --debug β€” show all sorts of debugging information. implies --verbose. this is the "oversharing" setting and honestly? respect πŸ’œ
  • -h β€” show this help message and exit. the classic escape hatch πŸŽ€

πŸ‘‘ SEE ALSO πŸ‘‘

git-commit(1)


πŸ’– AUTHOR πŸ’–

Andrej Shadura <andrew@shadura.me>


and that's the whole page, bestie! this was the git-crecord manual, version 20230226.0, dated 2022-03-20 β€” written by Andrej Shadura <andrew@shadura.me>, and yes we are giving credit where credit is due 🫢

go forth and split those changesets, you absolute legend β­πŸ’…βœ¨

πŸ“¦ where this page comes from