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

Re: Is rebase --force-rebase any different from rebase --no-ff?

From
Ilya Kantor <iliakan@gmail.com>
Date
May 9, 2018, 19:46 UTC
Message-ID
<CAFU8umhPCTTUc=EZYGDhFe=GeW7_GdyrqZU0DVg7xYaE+Ajg2A@mail.gmail.com>
In-Reply-To
<98279912-0f52-969d-44a6-22242039387f@xiplink.com>

I tried to compare --force-rebase VS --no-ff for the following repository: http://jmp.sh/E7TRjcL

There's no difference in the resulf of: git rebase --force-rebase 54a4 git rebase --no-ff 54a4

(rebases all 3 commits of feature)

Also, there's no difference in interactive mode: git rebase --force-rebase -i 54a4 git rebase --no-ff -i 54a4

(picks all 3 commits of feature)
Is there a case where --no-ff differs from --force-rebase?

--- Best Regards, Ilya Kantor

On Wed, May 9, 2018 at 10:27 PM, Marc Branchaud <marcnarc@xiplink.com> wrote:
Show 63 quoted lines
> On 2018-05-09 02:21 PM, Stefan Beller wrote:
>>
>> +cc Marc and Johannes who know more about rebase.
>>
>> On Wed, May 9, 2018 at 9:01 AM, Ilya Kantor <iliakan@gmail.com> wrote:
>>>
>>> Right now in "git help rebase" for --no-ff:
>>> "Without --interactive, this is a synonym for --force-rebase."
>>>
>>> But *with* --interactive, is there any difference?
>>
>>
>> I found
>>
>> https://code.googlesource.com/git/+/b499549401cb2b1f6c30d09681380fd519938eb0
>> from 2010-03-24
>
>
> In the original discussion around this option [1], at one point I proposed
> teaching rebase--interactive to respect --force-rebase instead of adding a
> new option [2].  Ultimately --no-ff was chosen as the better user interface
> design [3], because an interactive rebase can't be "forced" to run.
>
> At the time, I think rebase--interactive only recognized --no-ff.  That
> might have been muddled a bit in the migration to rebase--helper.c.
>
> Looking at it now, I don't have a strong opinion about keeping both options
> or deprecating one of them.
>
>                 M.
>
> [1] https://public-inbox.org/git/4B9FD9C1.9060200@xiplink.com/t/
> [2]
> https://public-inbox.org/git/1269361187-31291-1-git-send-email-marcnarc@xiplink.com/
> [3] https://public-inbox.org/git/7vzl1yd5j4.fsf@alter.siamese.dyndns.org/
>
>
>>      Teach rebase the --no-ff option.
>>
>>      For git-rebase.sh, --no-ff is a synonym for --force-rebase.
>>
>>      For git-rebase--interactive.sh, --no-ff cherry-picks all the commits
>> in
>>      the rebased branch, instead of fast-forwarding over any unchanged
>> commits.
>>
>>      --no-ff offers an alternative way to deal with reverted merges.
>> Instead of
>>      "reverting the revert" you can use "rebase --no-ff" to recreate the
>> branch
>>      with entirely new commits (they're new because at the very least the
>>      committer time is different).  This obviates the need to revert the
>>      reversion, as you can re-merge the new topic branch directly.  Added
>> an
>>      addendum to revert-a-faulty-merge.txt describing the situation and
>> how to
>>      use --no-ff to handle it.
>>
>> which sounds as if there is?
>>
>> Stefan
>>
>
Previous: Marc BranchaudNext: Marc Branchaud
Message 4 of 6 in “Is rebase --force-rebase any different from rebase --no-ff?”
  1. Ilya KantorMay 9, 2018
  2. Stefan BellerMay 9, 2018
  3. Marc BranchaudMay 9, 2018
  4. Ilya KantorMay 9, 2018
  5. Marc BranchaudMay 10, 2018
  6. Ilya KantorMay 10, 2018

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.