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

How do I undo a fast-forward merge safely?

From
Brent Goodrick <bgoodr@gmail.com>
Date
Feb 22, 2009, 19:15 UTC
Message-ID
<e38bce640902221115o2dd1c63dv6f7acc374b48d418@mail.gmail.com>

I had done a git merge --no-commit <source_branch> operation, but that bit me because I mistakingly concluded that --no-commit would prevent any type of automatic operation, but apparently a fast-forward occurred. I should have used the --no-ff option? How do I get my target branch back to where it was before the bad merge?

I did make a backup of the entire repo before I started, so I do have
the plan-B option of replay my changes onto a copy of the backup repo.
  But, maintaining backup copies just so as to avoid getting bit each
time I forget to use the --no-ff option will be a non-starter, so I
would hope there are some safe commands I can use to go back to the
original.

git log -1 does not show the commit, but gitk does show a vertical red line that I can only presume indicates the fast-forward. How does gitk determine that red line, while git-log does not? Note that I have not pulled into any other repo's yet, and won't until I can rectify this issue.

Here was my bad git merge command line:

$ git merge --no-commit source_branch Updating 7eb9a02..0c66ca1 Fast forward <eliding list of files I want mixed in with lots of files I don't want>

So, what operations, rebase, reset, etc, do I need to do to get this repo back to where it was right before the fast-forward?

Thanks, Brent

Next: Jakub Narebski
Message 1 of 3 in “How do I undo a fast-forward merge safely?”
  1. Brent GoodrickFeb 22, 2009
  2. Jakub NarebskiFeb 22, 2009
  3. Brent GoodrickFeb 24, 2009

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.