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 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).