Andy Parkins <andyparkins@xxxxxxxxx> writes: > No I'm not. Linus's suggested check is "git checkout will refuse to switch > AWAY from a detached head unless the SHA1 of the detached head exactly > matches some other branch." > > My question is what use is that? In exactly the situation you describe HEAD > doesn't match a branch. > > git checkout v1.0.0 You are taking it too literally. Read what Linus wrote again. So if you do git checkout v1.4.4 you'll be fine, because even though you got a detached HEAD that isn't attached to any branch, it still exists as a tag, so checking out something else is fine - you've not lost any state. The version in "next" does that, in a quite straightforward way: git show-ref -d -s | grep "$old" || { barf } which should be fairly fast in a repository with packed-pruned refs. - 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