From: Junio C Hamano Date: Fri, 25 Mar 2016 18:58:15 GMT Subject: Re: How to use @{-1} with push? Message-ID: In-Reply-To: Robert Dailey writes: > So the push works with the fully-qualified ref, but not git branch: I thought these are clear from their documentation. "push" works on refnames, "branch" works on branch names. "push" takes an branch name as a short-hand and adds refs/heads/ when it makes sense, but because it does not make any sense for "git branch" to create a "branch" in a random place in refs/ (e.g. "refs/tags/foo" is not a branch), it takes "foo" (i.e. the name of the branch, whose underlying ref is "refs/heads/foo"). So ref=$(git rev-parse --symbolic-full-name "$2") && case "$ref" in '') echo >&2 "No such thing $2"; exit 1 ;; refs/heads/*) ref=${ref#refs/heads/} ;; *) echo >&2 "That's not a branch $2"; exit 2 ;; esac && git push "$1" "refs/heads/$ref" && git branch -D "$ref" or something? > > $ git rev-parse --symbolic-full-name foo > refs/heads/foo > > $ git branch -d refs/heads/foo > error: branch 'refs/heads/foo' not found. > > Any reason for this? I'm using git 2.7.4 on windows