git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jeff King <peff@peff.net>
To: skillzero@gmail.com
Cc: Junio C Hamano <gitster@pobox.com>, git@vger.kernel.org
Subject: Re: How to merge from newer branch to older branches?
Date: Wed, 22 Apr 2009 16:15:41 -0400	[thread overview]
Message-ID: <20090422201541.GC14146@coredump.intra.peff.net> (raw)
In-Reply-To: <2729632a0904221044q20e6cabau7dd06b3020a8ce49@mail.gmail.com>

On Wed, Apr 22, 2009 at 10:44:06AM -0700, skillzero@gmail.com wrote:

> Then I rebased feature:
> 
> git rebase --onto merge-base-of-1.1-and-master feature-before-first feature
>
> [...]
> 
> I can merge 'feature' into 1.1, 1.2, etc. then theoretically, I should
> be able to apply bug fixes to 'feature' later and re-merge into 1.1,
> 1.2, etc. to pick up just the bug fixes, right?

Exactly.

> It seems like this merge conflict is going to cause problems if I try
> to re-merge to pick up a bug fix to 'feature' in the future. Looking
> at the documentation, it sounds like 'git rerere' can help by
> re-applying the manual conflict resolution I did?

It shouldn't. Remember that your merges into 1.1, 1.2, etc, created a
new merge base. So when you have bug fixes to make to this topic, you
don't put them on the "feature" branch, but onto this topic branch. Then
you re-merge the topic branch into 1.1., 1.2, feature, etc, and it will
look only at the new bugfix.

> BTW...Is there a way to find the first commit of a branch? I had to
> just look at the log manually to see what I remembered to be the first
> commit.

Sort of. Branches in git are really just refs pointing to the tip of the
branch. So once the tip advances, the ref no longer remembers "oh, this
is where I branched from". If there are other commits along the thing
you branched off of, you can calculate the merge-base of the thing you
branched from, and your branch.

However, the first entry in the reflog for that branch ref should
indicate branch creation (unless it is so old that it has expired).
Something like:

  $ git branch foo origin/master
  $ git reflog show foo
  0be9bc0 foo@{0}: branch: Created from origin/master

So 0be9bc0 would be the creation point in this case. But you might have
totally rewritten the branch after that point, so 0be9bc0 might not be a
useful value anymore.

-Peff

  reply	other threads:[~2009-04-22 20:17 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-04-21 19:24 How to merge from newer branch to older branches? skillzero
2009-04-21 19:36 ` Jeff King
2009-04-22  5:13   ` Junio C Hamano
2009-04-22 13:34     ` Jeff King
2009-04-22 17:44     ` skillzero
2009-04-22 20:15       ` Jeff King [this message]
2009-04-22 21:01         ` skillzero
2009-04-22 21:17           ` Jeff King
2009-04-22  4:46 ` John M. Dlugosz

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=20090422201541.GC14146@coredump.intra.peff.net \
    --to=peff@peff.net \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=skillzero@gmail.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).