From: Ron Garret <ron1@flownet.com>
To: git@vger.kernel.org
Subject: Re: master^ is not a local branch -- huh?!?
Date: Sat, 30 Jan 2010 11:24:13 -0800 [thread overview]
Message-ID: <ron1-EBAD29.11241330012010@news.gmane.org> (raw)
In-Reply-To: 7veil7pgb2.fsf@alter.siamese.dyndns.org
In article <7veil7pgb2.fsf@alter.siamese.dyndns.org>,
Junio C Hamano <gitster@pobox.com> wrote:
> Ron Garret <ron1@flownet.com> writes:
>
> >> > > If I do a git reset --hard then I get the old version, but I lose my
> >> > > HEAD pointer so that git diff doesn't give me what I want any more.
>
> I think it would be helpful to point out one issue that may hurt you (and
> anybody who thinks "git update --tree" without --index is a good idea).
>
> Keeping the index and HEAD in sync but matching the work tree files to
> that of a different commit has one major downside. To git, a work tree
> file that does not exist in the index is a yet-to-be-added-untracked file
> (that is how and why "rm --cached file" works, for example). It won't
> participate in the diff output (other than being treated as "no such file
> in the work tree version").
>
> Suppose that you used to have a path in older revision, but not in the
> current revision. You remove everything from the work tree and replace it
> with the files in the older revision, and you do not touch HEAD nor index.
> "git diff -R" appears to show "what changed since that older version and
> the latest", because it compares what is in the index relative to what is
> in the work tree. Nice.
>
> Not quite. Since the index does not know that path you recently removed,
> you won't see that path. If you run "git ls-files" for a list of files
> known to git, it wouldn't be shown either.
>
> Your original "git checkout master^" is a valid and probably the optimal
> way to get a checkout of a older revision (which you could feed to your
> running Lisp interpreter, in addition to being able to run "less" and
> "make" on them). Exactly because the index is updated to that of the
> older version, you won't lose the sight of the path that you removed in a
> later version, and you can review the change with "git diff -R master".
>
> I think this is an XY problem that comes from your wanting to use "git
> diff" (compare work tree with index) instead of "git diff $commit", and
> that was because you wanted to use "HEAD" as a name of a commit. If you
> used a branch name you originally came from, none of this desire to "keep
> index intact" or "keep HEAD intact" would have been necessary.
That's a very good point.
> But this is all tangent; I think you now know more about git to improve
> your IDE integration, without fighting with git but instead taking
> advantage of it.
I hope so :-)
Thanks to everyone who responded in this thread. It's been very
educational. I am very impressed at how supportive this community is to
a newcomer like me.
rg
next prev parent reply other threads:[~2010-01-30 19:25 UTC|newest]
Thread overview: 118+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-01-29 20:20 master^ is not a local branch -- huh?!? Ron1
2010-01-29 20:27 ` Jacob Helwig
2010-01-29 20:35 ` Sverre Rabbelier
2010-01-29 20:38 ` Jacob Helwig
2010-01-29 20:48 ` Junio C Hamano
2010-01-29 20:56 ` Sverre Rabbelier
2010-01-29 21:09 ` [PATCH] checkout: warn about 'branch name' rather than 'local branch' Sverre Rabbelier
2010-01-29 21:19 ` [PATCH] checkout: Fix test for s/local branch/branch name/ change Jacob Helwig
2010-01-29 21:20 ` Sverre Rabbelier
2010-01-29 21:40 ` [PATCH] checkout: warn about 'branch name' rather than 'local branch' Nicolas Pitre
2010-01-29 21:50 ` Ron Garret
2010-01-29 21:42 ` Junio C Hamano
2010-01-29 21:45 ` Sverre Rabbelier
2010-01-29 21:35 ` master^ is not a local branch -- huh?!? Junio C Hamano
2010-01-29 21:20 ` Nicolas Pitre
2010-01-29 21:21 ` Sverre Rabbelier
2010-01-29 21:29 ` Nicolas Pitre
2010-01-29 21:32 ` Sverre Rabbelier
2010-01-29 21:51 ` Nicolas Pitre
2010-01-29 21:58 ` Junio C Hamano
2010-01-29 22:00 ` Sverre Rabbelier
2010-01-29 22:34 ` Nicolas Pitre
2010-01-29 22:39 ` Junio C Hamano
2010-01-29 22:46 ` Jacob Helwig
2010-01-29 23:43 ` Nicolas Pitre
2010-01-30 0:14 ` Junio C Hamano
2010-01-30 0:18 ` Sverre Rabbelier
2010-01-30 0:29 ` Junio C Hamano
2010-01-30 0:35 ` Sverre Rabbelier
2010-01-30 0:38 ` Michael Witten
2010-01-30 0:39 ` Nicolas Pitre
2010-01-30 1:01 ` Mark Lodato
2010-01-30 1:22 ` Nicolas Pitre
2010-01-30 2:38 ` Ron Garret
2010-01-30 2:59 ` Junio C Hamano
2010-01-30 3:26 ` Ron Garret
2010-01-30 4:03 ` Nicolas Pitre
2010-01-30 5:06 ` Jay Soffian
2010-01-30 5:09 ` Junio C Hamano
2010-01-30 4:52 ` Jay Soffian
2010-01-30 5:15 ` Nicolas Pitre
2010-01-30 5:21 ` Junio C Hamano
2010-01-30 6:25 ` Ron Garret
2010-01-30 18:25 ` Junio C Hamano
2010-01-30 5:45 ` Jay Soffian
2010-01-30 5:18 ` Junio C Hamano
2010-01-30 6:23 ` Ron Garret
2010-01-30 2:40 ` Mark Lodato
2010-01-30 3:11 ` Nicolas Pitre
2010-01-30 3:59 ` Mark Lodato
2010-01-30 4:39 ` Nicolas Pitre
2010-01-30 5:05 ` Nicolas Pitre
2010-01-30 5:11 ` Jay Soffian
2010-01-30 5:25 ` Nicolas Pitre
2010-01-30 5:53 ` Mark Lodato
2010-01-30 6:03 ` Junio C Hamano
2010-01-30 8:59 ` Jeff King
2010-01-30 18:40 ` Ron Garret
2010-01-29 23:16 ` A Large Angry SCM
2010-01-29 21:49 ` Junio C Hamano
2010-01-30 2:13 ` Johannes Schindelin
2010-01-30 3:15 ` Nicolas Pitre
2010-01-29 20:35 ` Johannes Schindelin
2010-01-29 21:16 ` Ron1
2010-01-29 21:25 ` Jacob Helwig
2010-01-29 21:43 ` Ron Garret
2010-01-29 21:59 ` Junio C Hamano
2010-01-29 22:18 ` Ron Garret
2010-01-31 7:32 ` Junio C Hamano
2010-01-29 20:32 ` Octavio Alvarez
2010-01-29 21:34 ` Ron Garret
2010-01-29 22:32 ` Octavio Alvarez
2010-01-29 22:47 ` Ron Garret
2010-01-29 23:05 ` Octavio Alvarez
2010-01-29 23:12 ` Junio C Hamano
2010-01-29 23:30 ` Ron Garret
2010-01-29 23:28 ` Julian Phillips
2010-01-30 0:14 ` Ron Garret
2010-01-30 0:18 ` Ron Garret
2010-01-30 19:02 ` Junio C Hamano
2010-01-30 19:24 ` Ron Garret [this message]
2010-01-29 20:36 ` Scott R. Godin
2010-01-29 21:24 ` Ron Garret
2010-01-29 21:28 ` Sverre Rabbelier
2010-01-29 21:40 ` Ron Garret
2010-01-29 21:54 ` Junio C Hamano
2010-01-29 22:12 ` Ron Garret
2010-01-30 0:33 ` Michael Witten
2010-01-30 3:06 ` Junio C Hamano
2010-01-30 6:16 ` Ron Garret
2010-01-30 6:45 ` Junio C Hamano
2010-01-30 7:31 ` Ron Garret
2010-01-30 8:02 ` Junio C Hamano
2010-01-30 8:56 ` Ron Garret
-- strict thread matches above, loose matches on Subject: below --
2010-02-01 11:52 Steve Diver
2010-02-01 17:38 ` Junio C Hamano
2010-02-01 17:58 ` Sergei Organov
2010-02-01 22:52 ` Ron Garret
2010-02-01 23:01 ` Petr Baudis
2010-02-01 23:25 ` Nicolas Pitre
2010-02-01 23:37 ` Junio C Hamano
2010-02-01 23:56 ` Ron Garret
2010-02-02 0:15 ` Petr Baudis
2010-02-02 0:45 ` Ron Garret
2010-02-02 0:53 ` Junio C Hamano
2010-02-02 1:12 ` Ron Garret
2010-02-02 19:19 ` J. Bruce Fields
2010-02-02 22:04 ` Ron Garret
2010-02-03 18:27 ` J. Bruce Fields
2010-02-02 4:05 ` Nicolas Pitre
2010-02-02 5:23 ` Ron Garret
2010-02-02 5:43 ` Nicolas Pitre
2010-02-02 21:07 ` tytso
2010-02-02 0:26 ` Junio C Hamano
2010-02-02 0:21 ` Junio C Hamano
2010-02-01 18:12 ` Nicolas Pitre
2010-02-01 18:27 ` Jay Soffian
2010-02-01 22:34 ` Steve Diver
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=ron1-EBAD29.11241330012010@news.gmane.org \
--to=ron1@flownet.com \
--cc=git@vger.kernel.org \
/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).