From: Junio C Hamano Date: Fri, 19 Aug 2011 20:49:23 GMT Subject: Re: [PATCH] Disallow creating ambiguous branch names by default Message-ID: <7v1uwh2kks.fsf@alter.siamese.dyndns.org> In-Reply-To: Conrad Irwin writes: > In the process of changing things around to do this, I noticed that > > git checkout -M > > surprisingly works,... What is "-M" supposed to do??? If you meant "-B", that should work. When I want to rewrite a topic in a non-trivial way, I would often do: $ git checkout HEAD^^^ work to redo what the few commits at the tip should have done, creating commits. $ git diff @{-1} HEAD $ git checkout -B @{-1} which often happens to be simpler and more flexible than the canned rewriting options "rebase -i" can offer me. > ... in that you will get a: > > $ git rev-parse HEAD@{1} > warning: Log .git/logs/HEAD has gap after Fri, 19 Aug 2011 02:00:09 -0700 If that is the case, then the codepath to update the reflog is broken. That is not a reason to forbid -B, though. But because I do not know what you meant by "checkout -M", ...