git/list[1] front-page[2] threads[3] people[4] search[5] about
 

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
Previous: Robert DaileyNext: Robert Dailey
Message 5 of 6 in “How to use @{-1} with push?”
  1. Robert DaileyMar 25, 2016
  2. Junio C HamanoMar 25, 2016
  3. Robert DaileyMar 25, 2016
  4. Robert DaileyMar 25, 2016
  5. Junio C HamanoMar 25, 2016
  6. Robert DaileyMar 28, 2016

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.