On 2009-02-26, Jay Soffian <jaysoffian@xxxxxxxxx> wrote: > On Thu, Feb 26, 2009 at 2:08 AM, Jay Soffian <jaysoffian@xxxxxxxxx> 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 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html