Dear People of Git, I had some trouble getting out of a detached HEAD state using git checkout. I’ve solved it now but the behaviour of checkout when doing so leaves me a bit puzzled. I’d expect the behaviour of the commands below to be equivalent: git checkout origin/main vs git config checkout.defaultRemote origin git checkout main But they are not; the former leaves the HEAD detached while the latter sets it to main. I failed to find an explanation in the git-checkout documentation, which seems to indicate that checkout always updates HEAD. Could someone clarify what's going on? A bit more elaborate transcript of what I did is below. Thanks in advance! Kind regards, Bart Kuster --- # Checkout a commit to get into detached HEAD state $ git checkout aac02b81d735d5f15b3b3c61a84ccb79a8a90145 HEAD is now at aac02b8 Merge branch 'main' of https://repo into main $ git checkout origin/main HEAD is now at aac02b8 Merge branch 'main' of https://repo into main $ git status HEAD detached at aac02b8 (...) $ git config checkout.defaultRemote origin $ git checkout main On branch main (...) $ git status On branch main $