From: "Magnus Bäck" <baeck@google.com>
To: "J.V." <jvsrvcs@gmail.com>
Cc: git@vger.kernel.org
Subject: Re: more git weirdness (git rebase, merge conflicts
Date: Thu, 28 Mar 2013 12:04:32 -0400 [thread overview]
Message-ID: <20130328160431.GB23946@google.com> (raw)
In-Reply-To: <51533FB9.7070307@gmail.com>
On Wednesday, March 27, 2013 at 14:51 EDT,
"J.V." <jvsrvcs@gmail.com> wrote:
> I have a local/development branch tracked to origin/development. I
> made no changes to local/dev and did a git pull with rebase, I did
> not expect any conflicts.
>
> I got a conflict and was thrown onto another branch. I attempted a
> merge (using IntelliJ) accepting everything from the server but a
> variable definition was missing for some odd reason and the merge
> was not successful (merge was resolved but the file would not
> compile) so I decided to simply go back to my dev branch and figure
> out how to do a git pull -f (force overwrite of all local files so
> that I could get my local/dev back into sync with origin/dev.
>
> On my screwed up branch that I was thrust onto:
> I typed:
> $git rebase --skip <= I was stuck in a rebase (rebase
> failed, was thrown onto a tmp branch and thought this would get me
> out of there)
The --skip option makes Git skip one commit in the rebase. To bail out
completely and restore the original state, use --abort.
> Now I have been sitting here for an hour watching "Applying:
> <message" scroll by and it looks like the messages are going
> backwards into the past one by one. What the hell is happening?
>
> Applying: add log information
> Applying: <previous message
> .... and it goes on and on and on.
You initated a rebase with an incorrect base, so Git is rebasing all
past history onto a new base. Say the upstream repository looks like
this, with uppercase letters denoting commits found on the upstream
and lowercase letters being your local commits (if any):
----------C
/
A----B---
\
------------D----E
\
--a--b
In this example, you've made two commits since you started working on
commit D. The expected result for a rebase is for Git to rebase the two
commits you've made since D (a, b) and put them on top of E, the new
baseline fetched from the upstream. However, because of how you invoke
the rebase, Git actually thinks that C is the base of your local branch
and computes all the commits you've made since C and finds all commits
between B and b, which it now tries to rebase on top of C.
> All I want to do at this point is to get back to my dev branch and
> force pull from origin/dev while keeping all local files that have
> not been added to my local repo.
>
> How do I stop this madness and get back to local dev and force pull
> from origin/dev <= which is our master.
Start with "git rebase --abort" to get out of the rebase loop. To delete
all your local uncommitted changes made to tracked files while keeping
local/untracked files, run "git reset --hard". If you haven't made any
local commits a correctly invoked rebase (or pull) will be a trivial
fast-forward.
--
Magnus Bäck
baeck@google.com
prev parent reply other threads:[~2013-03-28 16:31 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-03-27 18:51 more git weirdness (git rebase, merge conflicts J.V.
2013-03-28 16:04 ` Magnus Bäck [this message]
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=20130328160431.GB23946@google.com \
--to=baeck@google.com \
--cc=git@vger.kernel.org \
--cc=jvsrvcs@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 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.