Re: checkout vs reset
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