Re: checkout vs reset
- From
Sitaram Chamarty <sitaramc@gmail.com>
- Date
- Feb 26, 2009, 09:15 UTC
- Message-ID
- <slrngqcnd8.t1u.sitaramc@sitaramc.homelinux.net>
- In-Reply-To
- <76718490902252312h6a08f5a6x972523e7c7e4af16@mail.gmail.com>
On 2009-02-26, Jay Soffian <jaysoffian@gmail.com> wrote:
Show 12 quoted lines
> On Thu, Feb 26, 2009 at 2:08 AM, Jay Soffian <jaysoffian@gmail.com> wrote: >> Is there any different between the following two commands? >> >> git reset <commit> -- <paths>... >> git checkout <commit> -- <paths>... >> >> As far as I can tell from the man pages, they are equivalent. To wit: >> both update the index and working copy for the given paths to the >> state that they were in in <commit>. > > Doh, answering my own question. reset only touches the index, not the > working copy. checkout updates both.
However, if the <commit> doesn't even _have_ the <path> in question, it leaves the index alone (doesn't remove it, for instance):
Using HEAD as the <commit> in question for this example:
echo hi > abc # new file, untracked so far
git add abc
git status # it's staged
git reset HEAD -- abc
git status # untracked # now with checkout
git add abc
git status # staged
git checkout HEAD -- abc
git status # still staged