Hi
Thanks for checking my ORIG_HEAD mistake - I'd misremembered (it was easiest to put the command name first ;-)

The "--merge" option, now I look at the man page, relates to an easy confusion I also had between the DAG-merge, where the focus was on the parent-children meta data, versus the file level 'merge' where two files, or one file and a patch [or more] are being squeezed into one the single file. The two files -> one file, and one file + one patch for that file -> one file merge cases are relatively easy and simple. BUT there are more complicated cases that Git can detect because it knows what went before. These include that a file may have just been renamed, or moved, or the parent directory renamed/moved, and many variants like that [1]. So,

So, the --merge option(s) allow you to tell git that you have more details about those cases, and what to do when there are conflicts.

The term <upstream> may need some care. It is easy to be confused, especially if the value is not given. From a simple viewpoint the <uspstream> could be called <oldbase>, and helps mark where you were up to if you were following someone else's work and had had them as a remote and their work as a 'remote tracking branch (rtb)' (a local branch which tracks a branch on a remote server). When you have an upstream set, then git assumes (default) that it should use that rtb, which is local to you, as a reference point for the rebase. In such case, when collaborating with a friend on a feature, it is like a game of leapfrog, with each building on top of each others work - that was the original use case for rebase.

The --merge option allows you to say 'use my changes' automatically, or use the changes from the rtb. The comment in the man page is that you are placing your commits on top of the work of others, rather than adding their work onto your work, so the "ours/theirs" terminology swaps around.

Philip

[1] the file rename detection is an active issue on the Git list e.g. https://public-inbox.org/git/20190405150026.5260-1-new...@gmail.com/

On 07/04/2019 18:45, neverasi...@gmail.com wrote:
Hi Philip and everybody,
I understood better the rebasing feature by studying more and more situations and by clarifying any misunderstandings of mine about merging feature. Well, I understood how to use --root option for rebasing and what is its effect.
Just 2 remarks:

  * no REBASE_HEAD exist, just ORIG_HEAD (the same as for merging
    feature) ... however how to undo a rebasing (if possible) will be
    a future deepening of mine,
  * --no-ff option is for rebasing too: with this option the rebasing
    feature is enforced to individually replay all commits instead of
    fast-forwarding over the unchanged ones. This ensures that the
    entire history of the rebased branch is composed of new commits.

In the while, I come back to my original question: what is --merge command line optionof git rebase command? Please, couldanyone explain this specific option of rebasing and provide a tutorial simple example?

Philip, however I thank you very very very much for your precious support. :-)
Regards.







Il giorno sabato 6 aprile 2019 10:53:48 UTC+2, never...@gmail.com ha scritto:

    Hi all,
    could anyone clarify the meaning and the usage of

      * --root command line option,
      * --merge command line option (Maybe is it anyway related to
        merge option in interactive todo-file?),

    possibly providing an example in principle?
    The official documentation is very obscure because too synthetic
    ... it could be understood just by whoever already knows GiT.

--
You received this message because you are subscribed to the Google Groups "Git for human beings" group. To unsubscribe from this group and stop receiving emails from it, send an email to git-users+unsubscr...@googlegroups.com <mailto:git-users+unsubscr...@googlegroups.com>.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Git for 
human beings" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to git-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to