From: Seb <spluque@gmail.com>
To: git@vger.kernel.org
Subject: Re: interactive rebase results across shared histories
Date: Sun, 21 Feb 2016 21:32:43 -0600 [thread overview]
Message-ID: <87y4ad5sis.fsf@gmail.com> (raw)
In-Reply-To: CAPig+cSxmWc_Guab0UoQbRMEkVLr-qhF=LCiVk10G5AdnTqnGA@mail.gmail.com
On Sun, 21 Feb 2016 14:08:44 -0500,
Eric Sunshine <sunshine@sunshineco.com> wrote:
[...]
> What you're probably missing is that you can't actually edit commits
> in Git. Instead, what you think of as "editing" actually creates a new
> commit with its own commit-ID, and the original commit still exists
> with its own commit-ID. Since Git commits are chained together by
> their commit-ID's, any commits pointing at the original commit-ID
> continue to point to that commit, and only commits rebased atop the
> new commit-ID of the "edited" commit point at it.
> In your example, you're "editing" D and E, which creates new commits
> D' and E', so your resulting graph looks like this:
> D'---E'---A---B---C topic / *---D---E---F---G master
> So, "master" and "topic" really are not sharing D and E (or D' and
> E'). You could "fix" this to match your intuition by rebasing F...G
> onto E' (see git-rebase --onto, for instance), which would give you
> this:
> A---B---C topic / *---D'---E'---F---G master
> and then "master" and "topic" would really be sharing D' and E' as
> common history. (Of course, rebasing "master" or any branch may not be
> desirable if you've published it, so applicable warnings about
> rebasing apply.)
> By the way, the problem isn't restricted to when you rebase "topic"
> (as your problem description implies). You'd see the same behavior if
> you'd rebased D and E in "master" to become D' and E'. "topic" would
> still have old D and E in its history, and not D' and E'.
Thank you for this excellent explanation. I will look into git rebase
--onto to have both branches share the history that should be shared
after the interactive rebase. Fortunately, this is a private repository
for now.
--
Seb
next prev parent reply other threads:[~2016-02-22 3:32 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-02-20 22:58 interactive rebase results across shared histories Seb
2016-02-21 2:12 ` Moritz Neeb
2016-02-21 17:25 ` Seb
2016-02-21 19:08 ` Eric Sunshine
2016-02-22 3:32 ` Seb [this message]
2016-02-22 7:41 ` David
2016-02-23 17:39 ` Seb
2016-02-23 22:57 ` Moritz Neeb
2016-02-23 23:04 ` Kevin Daudt
2016-02-23 23:05 ` Seb
2016-02-26 12:38 ` David
2016-02-26 21:12 ` Seb
2016-02-26 22:56 ` Stepan Kasal
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87y4ad5sis.fsf@gmail.com \
--to=spluque@gmail.com \
--cc=git@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.