On 2009-01-03, Junio C Hamano <gitster@xxxxxxxxx> wrote: > Sitaram Chamarty <sitaramc@xxxxxxxxx> writes: > >>>> It seems we have 2 ways to blow away work we haven't >>>> checked in yet then right? >>> >>> Wrong. >> >> Strictly as asked, yes, but what if he adds a "-f" to the >> middle command, making it "git checkout -f HEAD"? Wouldn't >> that be the same as the others then? > > Yeah, but comparing reset and checkout misses a whole _dimension_ in the > revision space continuum. [snip] > "checkout -f" and "reset --hard" work on different dimensions, and what > they do intersect when (and only when) the <branch>/<commit> argument > happen to be HEAD. "checkout -f <another>" and "reset --hard <another>" > will do quite different things. I teach git sometimes (internally) in my job. It seems to me that people who don't like TMTOWTDI get stuck on this "why are there 2 ways to do the same thing" aspect, even after I explain all the *other* uses of the two commands to show that they're actually quite different! Your use of "dimension" and "degenerate case" gave me an idea... most of my audience have decent math skills, so I bet they get it if I say these are like two quite different functions that just happen to intersect at x=0 :-) Thank you very much! -- 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