On Mon, Aug 12, 2013 at 6:23 AM, Duy Nguyen <pclouds@xxxxxxxxx> wrote: > That would annoy me as I often work on top of detached HEAD on purpose > and only create a branch when I want to save something. If the warning > is to be moved, it should warn at the next checkout. Yes, you're absolutely right ... My point about the current checkout warning is that it's crying wolf, and nullifying the value of the warning. Most of the time I checkout a ref, I'm not doing anything dangerous because I'm not going to check anything in. The warning would be more effective if it warns in as narrow a situation as possible. You're correct that the clobber is even more narrow than the checkin. The warning on clobber would be similar to (but shorter than) the one which could be removed from checkout.. Clobbered detached HEAD 'cce40d6'! git log cce40d6 ^master # log detached changes vs master git branch <name> cc340d6 # name the changes with a branch Personally, I'd prefer for explicit action to discard a detached head. It's true that this is an explicit step, but for me it generally takes a heck of alot less time to explicitly discard than it did to checkout the detached head, make changes (or apply a patch), and then decide to throw them away. My "ephemeral branch" idea was a way to make this explicit discard as passive and lazy as possible. Basically, never stop you from doing your work, assume you know what you are doing. If the user names-the-branch it disappears. If the user merges or rebases the detached head, it disappears. The only time the "ephemeral branch" would survive is if the user really clobbered a detached head and then didn't do anything about it. Even if they missed the warning (in the middle of a script or automated process), eventually they would see the ephemeral branch lying around. Clobbering a detached head with "ephemeral branches" could show no warning at all, or a warning like: Clobbered detached HEAD. git log cce40d6 ^master # log detached changes vs master git branch -D tmp/cce40d6 # Discard these changes git branch tmp/cce40d6 <newname> # name this branch -- 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