Skip to content
This repository


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Aug 22, 2011

  1. Conrad Irwin

    Prevent force-updating of the current branch

    "git branch -M <foo> <current-branch>" allows updating the current branch
    which HEAD points, without the necessary house-keeping that git reset
    normally does to make this operation sensible. It also leaves the reflog
    in a confusing state (you would be warned when trying to read it).
    "git checkout -B <current branch> <foo>" is also partly vulnerable to this
    bug; due to inconsistent pre-flight checks it would perform half of its
    task and then abort just before rewriting the branch. Again this
    manifested itself as the index file getting out-of-sync with HEAD.
    "git branch -f" already guarded against this problem, and aborts with
    a fatal error.
    Update "git branch -M", "git checkout -B" and "git branch -f" to share the
    same check before allowing a branch to be created. These prevent you from
    updating the current branch.
    We considered suggesting the use of "git reset" in the failure message
    but concluded that it was not possible to discern what the user was
    actually trying to do.
    Signed-off-by: Conrad Irwin <>
    Signed-off-by: Junio C Hamano <>
    authored August 20, 2011 gitster committed August 22, 2011
Something went wrong with that request. Please try again.