From: "Tim Visher" <tim.visher@gmail.com>
To: "Junio C Hamano" <gitster@pobox.com>
Cc: git@vger.kernel.org
Subject: Re: Is it possible to roll back unstaged changes while leaving the staged ones for the next commit?
Date: Wed, 17 Dec 2008 17:48:50 -0500 [thread overview]
Message-ID: <c115fd3c0812171448o3db6f4c1oc24e39f9a68ed1d3@mail.gmail.com> (raw)
In-Reply-To: <7vy6yelf2m.fsf@gitster.siamese.dyndns.org>
On Wed, Dec 17, 2008 at 3:30 PM, Junio C Hamano <gitster@pobox.com> wrote:
> The last part of the sentence after "because" does not parse for me at
> all...
Sorry for the double/triple/quadruple negatives I threw in there.
Makes the statement incredibly unclear.
> , but I think you are after one of the following:
>
> (1) if you want to get rid of garbage changes in your work tree, you
> would want "git checkout $that_path";
>
> (2) if you want to temporarily stash away further changes in your work
> tree, because you would want to first test what is staged, commit it,
> and then later continue to refine the changes stashed away thusly,
> you would want "git stash --keep-index".
>
>
If I could attempt to make my situation a little clearer.
I had two very similar files (I know, I know, DRY, blah blah. :\ It's
not my source tree to begin with... bleh) and I wanted to duplicate a
bunch of simple edits (adding white space, comments, etc.) from one of
them to the other without having to manually compare them.
Then, a light bulb went off in my head and I thought to myself that it
would make a ton of sense to use `git add -i` to add only the changes
that I wanted to the files and leave the stuff I wanted to be
different between the two of them out. I `cp`ed the edited file over
the other file and then fired up `git add -i` and proceeded to stage
all of the edits that I wanted. This left me with a staged version of
the file that was exactly what I wanted and a locally modified file
with contents that I didn't want. However, the changes were still
untested.
What I wanted to do was basically get rid of the unstaged edits on
this file but keep the staged ones. Without committing.
Unfortunately I couldn't figure out how to do this. The solution I
came up with was to go ahead and `git commit` the staged changes and
then `git checkout PATH` the just committed file to overwrite the
local edits with the version of the file I wanted.
I want to know if it was possible to accomplish this without the commit stage.
--
In Christ,
Timmy V.
http://burningones.com/
http://five.sentenc.es/ - Spend less time on e-mail
next prev parent reply other threads:[~2008-12-17 22:50 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-12-17 19:57 Is it possible to roll back unstaged changes while leaving the staged ones for the next commit? Tim Visher
2008-12-17 20:30 ` Junio C Hamano
2008-12-17 22:48 ` Tim Visher [this message]
2008-12-17 22:59 ` Junio C Hamano
2008-12-18 1:22 ` Tim Visher
2008-12-18 3:34 ` Nanako Shiraishi
2008-12-18 12:24 ` Tim Visher
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=c115fd3c0812171448o3db6f4c1oc24e39f9a68ed1d3@mail.gmail.com \
--to=tim.visher@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.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).