From: Howard Miller <howard@e-learndesign.co.uk>
To: Martin Langhoff <martin.langhoff@gmail.com>
Cc: git@vger.kernel.org
Subject: Re: Commited to wrong branch
Date: Tue, 15 Sep 2009 12:05:35 +0100 [thread overview]
Message-ID: <26ae428a0909150405v3087016fxee5ac98057868677@mail.gmail.com> (raw)
In-Reply-To: <46a038f90909150355h20b39c71w4af7e2be2920fdbb@mail.gmail.com>
Hi Martin,
I'm pretty shocked how difficult this is... still...
I'm finding git logs and reflogs pretty difficult to read and
interpret (head melting) - in particular telling what happened on what
branch - but looking at the reflog (which I assume is showing me the
actions on the current branch, but I'm not sure) I think I must have
made two commits on the wrong branch so the reset has only 'popped'
the top one. Other than that your interpretation is correct.
I cannot currently change branches - it only complains about one file.
I'm a bit worried about that - I would like to understand why this is
a problem but I don't.
So I am now a little hazy on how to deal with previous TWO commits.
Sorry for misery.... I've lost the plot a bit here :-)
Howard
2009/9/15 Martin Langhoff <martin.langhoff@gmail.com>:
> On Tue, Sep 15, 2009 at 12:31 PM, Howard Miller
> <howard@e-learndesign.co.uk> wrote:
>> I am resurrecting a discussion from a week or two back (been on
>> holiday). As follows...
>>
>> I had made some changes to some files and then done a commit. Only
>> then did I realise that I had the wrong branch checked out. To make
>> matters worse I then did a 'git reset HEAD^' which means that I can
>> now no longer switch branches. I am stuck. I had some advice (thanks!)
>> but it was not complete. I'd appreciate some more help.
>
> Hi Howard,
>
> just to make sure I understand your issue
>
> 1 - you were on branch X, thinking your were on branch Y
> 2 - edit, diff, commit, realised the mistake
> 3 - git reset HEAD^
>
> so if you now run `git status` and `git diff` it will show your
> changes as if they were uncommitted and unstaged.
>
> (Before you start with various attempts to recover below, a great
> trick is to make an instant-backup in case things go wrong: cd .. / ;
> cp -pr moodle.git moodle-backup.git ; cd moodle.git )
>
> You can now try do do
>
> 4 - git checkout Y
>
> and if the changes are on files that don't change between X and Y,
> then git will change the branches and keep your changes there. If the
> files are different between X and Y, it won't work.
>
> What I can recommend is to save your patch, as follows
>
> 5 - git diff > tempchanges.patch
> 6 - git reset --hard # this will discard your changes, careful
> 7 - git checkout Y
> 8 - patch -p1 < tempchanges.patch
>
> The patch may not apply cleanly :-) -- note that patch is more
> tolerant of iffy merges than git's internal implementation ("git
> apply") -- so it will succeed more often... but the results need
> review.
>
> There is a more git-style approach that is to use git-stash -- it uses
> git-apply and may not do what you want. The steps are
>
> 5a - git stash # will save your changed files into a "stashed commit"
> and clear out the changes from your working copy
> 6a - git checkout Y
> 7a - git stash apply
>
> hth,
>
>
>
> m
> --
> martin.langhoff@gmail.com
> martin@laptop.org -- School Server Architect
> - ask interesting questions
> - don't get distracted with shiny stuff - working code first
> - http://wiki.laptop.org/go/User:Martinlanghoff
>
next prev parent reply other threads:[~2009-09-15 11:05 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-09-15 10:31 Commited to wrong branch Howard Miller
2009-09-15 10:55 ` Martin Langhoff
2009-09-15 11:05 ` Howard Miller [this message]
2009-09-15 11:16 ` Martin Langhoff
2009-09-15 12:10 ` Howard Miller
2009-09-15 12:46 ` Martin Langhoff
2009-09-15 12:58 ` Howard Miller
2009-09-15 13:06 ` Björn Steinbrink
2009-09-15 13:12 ` Howard Miller
2009-09-15 13:54 ` Martin Langhoff
2009-09-15 14:11 ` Howard Miller
2009-09-15 20:39 ` Björn Steinbrink
2009-09-15 20:52 ` Howard Miller
2009-09-15 21:53 ` Martin Langhoff
2009-09-15 22:30 ` Björn Steinbrink
2009-09-15 13:27 ` Howard Miller
2009-09-15 13:45 ` Howard Miller
2009-09-15 14:08 ` Johannes Sixt
2009-09-15 13:46 ` Martin Langhoff
2009-09-15 11:19 ` Björn Steinbrink
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=26ae428a0909150405v3087016fxee5ac98057868677@mail.gmail.com \
--to=howard@e-learndesign.co.uk \
--cc=git@vger.kernel.org \
--cc=martin.langhoff@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).