Re: Proper way to checkout a tag?
From: Michael J Gruber <hidden>
Date: 2016-06-15 22:50:09
Dun Peal venit, vidit, dixit 01.12.2010 21:16:
On Wed, Dec 1, 2010 at 1:51 PM, Jonathan Nieder [off-list ref] wrote:quoted
The idea is this: when you check out a tag or a remote-tracking branch, it is not to make changes to it. Tags are unchanging, remote-tracking branches track remote state that the user does not directly control.Yes, users checkout a release tag just so they can build parts of it. There's definitely no intention of creating new changes on top of them, and if there is then it should properly be a head (branch). I guess that's exactly the use-case for detached HEAD, so I guess the answer is that we should all stop being afraid of that superficially scary term.
It's really one of the most useful features of git (as Jonathan explained). There are two things which make it scary: - The name. We could call it differently (free head, unbound head, branchless head, west coast head...). - The garbage collection. It's easy to commit on top of a detached head by mistake, and once you switch away from that, it's difficult to find it again (reflog) and easy to lose (gc/prune). Though the "throw-away" nature of detached heads is a useful feature, we could possibly help users who commit on top of them better. Michael