GIT-FMT-MERGE-MSG(1)

πŸ’… GIT-FMT-MERGE-MSG(1) β€” the git manual, but make it cute

okay so bestie, welcome to git-fmt-merge-msg from the git(1) manual ✨ this one's lowkey a backstage-pass situation β€” it's the little helper that writes your merge commit message for you πŸŽ€


🌸 NAME 🌸

git-fmt-merge-msg β€” produce a merge commit message πŸ’Œ


✨ SYNOPSIS ✨

git fmt-merge-msg [-m <message>] [--into-name <branch>] [--log[=<n>] | --no-log]
git fmt-merge-msg [-m <message>] [--log[=<n>] | --no-log] -F <file>

πŸ’– DESCRIPTION πŸ’–

So here's the vibe: it takes the list of merged objects on stdin and produces a suitable commit message to be used for the merge commit β€” usually the one you'd hand over as the <merge-message> argument of git merge 🫢

Real talk though, this command is intended mostly for internal use by scripts that automatically invoke git merge. So like, it's not really the main character β€” it's the best friend holding the water bottle backstage 🧚 iykyk


πŸ¦‹ OPTIONS πŸ¦‹

  • --log[=<n>] β€” in addition to branch names, populate the log message with one-line descriptions from the actual commits that are being merged. At most <n> commits from each merge parent will be used (20 if <n> is omitted). This overrides the merge.log configuration variable πŸ”₯
  • --no-log β€” do not list one-line descriptions from the actual commits being merged. simple as that πŸ’…
  • --summary, --no-summary β€” synonyms to --log and --no-log; these are deprecated and will be removed in the future. so like… they're giving legacy era, don't get attached πŸ’€
  • -m <message>, --message <message> β€” use <message> instead of the branch names for the first line of the log message. For use with --log πŸŽ€
  • --into-name <branch> β€” prepare the merge message as if merging to the branch <branch>, instead of the name of the real branch to which the merge is made. manifesting a different destination, honestly ✨
  • -F <file>, --file <file> β€” take the list of merged objects from <file> instead of stdin πŸ“„

πŸ‘‘ CONFIGURATION πŸ‘‘

  • merge.branchdesc β€” in addition to branch names, populate the log message with the branch description text associated with them. Defaults to false 🌸
  • merge.log β€” in addition to branch names, populate the log message with at most the specified number of one-line descriptions from the actual commits that are being merged. Defaults to false, and true is a synonym for 20 ⭐
  • merge.suppressDest β€” by adding a glob that matches the names of integration branches to this multi-valued configuration variable, the default merge message computed for merges into these integration branches will omit "into <branch-name>" from its title 🌈

An element with an empty value can be used to clear the list of globs accumulated from previous configuration entries. When there is no merge.suppressDest variable defined, the default value of master is used for backward compatibility 🫢

  • merge.summary β€” synonym to merge.log; this is deprecated and will be removed in the future πŸ’€

πŸ“ EXAMPLES πŸ“

$ git fetch origin master
$ git fmt-merge-msg --log <$GIT_DIR/FETCH_HEAD

Print a log message describing a merge of the "master" branch from the "origin" remote. cute, right? obsessed πŸ˜­πŸ’–


🧚 SEE ALSO 🧚

git-merge(1) β€” go read that one too, it's the whole point of all this πŸ’œ


πŸ’« GIT πŸ’«

Part of the git(1) suite πŸ‘‘


ngl that's the whole page, bestie. no cap, every flag is here, nothing skipped 🫑

and that's a wrap!! this gem came to you from Git 2.56.0, dated 2026-09-27, and it's officially the GIT-FMT-MERGE-MSG(1) page β€” periodt πŸ’…πŸŽ€πŸ’–

πŸ“¦ where this page comes from