سؤال

I have (commits were created in alphabetical order)

origin/topic  A-B-C-D-W-X

topic         A-B-C-D-Y-Z

Is there a way i can get my topic branch to look like

A-B-C-D-W-X-Y-Z

without introducing a merge commit?


Ordinarily I'd just do

$ git checkout topic
$ git fetch origin
$ git merge --ff-only origin/topic

But since Y and Z were committed after W and X, a fast forward will not work.

I suspect some clever rebasing or cherry picking might work but I can't wrap my head around it :{

هل كانت مفيدة؟

المحلول

You can try with:

git checkout topic
git pull --rebase origin topic

Check the fetch man page notes about the rebase option.

I would recommend using something like git-smart, which will do a fast forward (which is faster) when possible, and if not, then a rebase. It will also stash local changes if you have any and give you a summary of the remote changes that were pulled.

نصائح أخرى

As an alternative to mamapitufo's answer, you can also do the following, which will give you the exact same result:

git fetch origin
git rebase origin/topic topic

The last topic parameter is optional if you already have it checked out.

If you already have topic checked out and origin/topic fetched which is tracking origin/topic (sounds like you do), you could just:

git rebase

I gave mamapitufo an up vote.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top