Martin von Zweigbergk <martinvonz@xxxxxxxxx> writes: > On Thu, Nov 29, 2012 at 2:00 PM, Martin von Zweigbergk > <martinvonz@xxxxxxxxx> wrote: >> Slightly off topic, but another difference (or somehow another aspect >> of the same difference?) that has tripped me up a few times is that >> "git checkout $rev ." only affects added and modified files... "checkout $commit pathspec" has always been about checking out the contents stored in the paths that match the pathspec from the named commit to the index and also o the working tree. "checkout pathspec" is similar, but the stuff comes out of the index. When pathspec is "dir/", it does not match the directory whose name is "dir". The pathspec matches the paths that store blobs under that directory. In other words, "checkout dir/" (or "checkout HEAD~4 dir/) has never been about "please remove everything in dir/, and then check out everything in dir/ from the index (or from HEAD~4)". The "please remove everything in dir/" part is not the job of "checkout"; of course, you can do it as a separate step (e.g. "rm -fr dir/"). -- 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