git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Splitting a commit with rebase -i and keeping a commit message

From
TCTim Chase <git@tim.thechases.com>
Date
Apr 17, 2013, 01:38 UTC
Message-ID
<20130416203825.3701d98b@bigbox.christie.dr>

I asked this on IRC and played with some of their ideas, but struck out with anything satisfying. I walked through [1] with the following setup:

  git init foo
  cd foo
  touch a.txt b.txt
  git add a.txt b.txt
  git commit -m "Initial checkin"
  echo "Modify A" >> a.txt
  git commit -am "Modified A"
  echo "Modify B" >> b.txt
  git commit -am "Modified B"
  echo "Modify A2" >> a.txt
  echo "Modify B2" >> b.txt
  git commit -am "Modified B"
  git commit -am "Long-bodied commit comment about b.txt changes"
  # whoops, just wanted B
  git rebase -i HEAD^^
  # change the "Added b.txt..." commit to "edit"
  git reset HEAD^  # pull the changes out of the pending commit
  git add a.txt
  git commit -m "Tweaked a.txt"
  git add b.txt
  git commit ${MAGIC_HERE}
  git rebase --continue

I haven't been able to figure out a good way to keep the "long-bodied commit comment" for the final commit where the ${MAGIC_HERE} is. Is there a right/easy way to go about pulling in the commit-message from the commit the rebase is transplanting?

-tkc

[1] http://git-scm.com/book/en/Git-Tools-Rewriting-History#Splitting-a-Commit

Next: David Aguilar
Message 1 of 4 in “Splitting a commit with rebase -i and keeping a commit message”
  1. Tim ChaseApr 17, 2013
  2. David AguilarApr 17, 2013
  3. Tim ChaseApr 17, 2013
  4. Johannes SixtApr 17, 2013

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.