Re: How to use @{-1} with push?
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Mar 25, 2016, 18:58 UTC
- Message-ID
- <xmqqoaa22xmg.fsf@gitster.mtv.corp.google.com>
- In-Reply-To
- <CAHd499BCciG5Udd_sj550jPKg_ahZmWOi-zUOU-cr_wYmri=Rg@mail.gmail.com>
Robert Dailey <rcdailey.lists@gmail.com> 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?
Show 8 quoted lines
> > $ 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