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

Re: Unexpected or wrong ff, no-ff and ff-only behaviour

From
Junio C Hamano <gitster@pobox.com>
Date
Jul 9, 2019, 14:51 UTC
Message-ID
<xmqqa7dnw9b1.fsf@gitster-ct.c.googlers.com>
In-Reply-To
<423596682.8516.1562665372094@office.mailbox.org>
usbuser@mailbox.org writes:
> I'm rather confused about --ff, --no-ff and --ff-only. They seam
> to be all mutual exclusive...

A clean result left by "git merge" can be either a fast-forward, or a real merge (i.e. 2 possible outcomes).

The --ff option lets you say "If the other history I am attempting to merge is a descendant of the current commit, not creating a real merge and instead fast-forwarding is permitted". As this is the default, case you actually type --ff on the command line is rather limited (e.g. to countermand an earlier --no-ff on the command line).

The --no-ff option lets you say "I never accept a fast-forward as the result; please make a real merge instead, even if it is redundant".

The --ff-only option lets you say "I never accept a real merge as the result; please fail if this does not fast-forward".

So, the only "real" options are between --[no-]ff (which allows or disallows one of the two possible outcomes, which is "fast-forward") and [--ff-only] (which allows or disallows the other one of the two possible outcomes, which is "real merge").

Previous: usbuser@mailbox.orgNext: Roland Jäger
Message 2 of 20 in “Unexpected or wrong ff, no-ff and ff-only behaviour”
  1. usbuser@mailbox.orgJul 9, 2019
  2. Junio C HamanoJul 9, 2019
  3. Roland JägerJul 9, 2019
  4. Elijah NewrenJul 9, 2019
  5. usbuser@mailbox.orgJul 9, 2019
  6. Elijah NewrenJul 9, 2019
  7. Bryan TurnerJul 9, 2019
  8. usbuser@mailbox.orgJul 10, 2019
  9. Junio C HamanoJul 10, 2019
  10. Sergey OrganovJul 11, 2019
  11. Junio C HamanoJul 11, 2019
  12. Sergey OrganovJul 12, 2019
  13. Elijah NewrenJul 12, 2019
  14. Sergey OrganovJul 15, 2019
  15. Junio C HamanoJul 12, 2019
  16. Sergey OrganovJul 15, 2019
  17. Junio C HamanoJul 15, 2019
  18. Sergey OrganovJul 19, 2019
  19. brian m. carlsonJul 11, 2019
  20. Sergey OrganovJul 10, 2019

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.