Convenient shortcut to push delete current branch?

4 messages, 3 authors, 2016-06-15 · open the first message on its own page

Convenient shortcut to push delete current branch?

From: Robert Dailey <hidden>
Date: 2016-06-15 23:06:44

For convenient pushing of current branch, git supports this syntax:

$ git push origin HEAD

This will push your current branch up. However, is there such a
shortcut for *deleting* the branch? The only goal here is to avoid
having to type the branch name in the push command. Normally I rely on
tab completion but we have tons of branches, all which start with some
prefix mixed with numbers, so it becomes cumbersome to rely on tab
completion. Ideally I'd like to be able to do:

$ git push --delete origin HEAD
$ git push origin :HEAD

Is there a syntax like this available?

Re: Convenient shortcut to push delete current branch?

From: Jacob Keller <hidden>
Date: 2016-06-15 23:06:44

On Thu, Oct 1, 2015 at 9:43 AM, Robert Dailey [off-list ref] wrote:
For convenient pushing of current branch, git supports this syntax:

$ git push origin HEAD

This will push your current branch up. However, is there such a
shortcut for *deleting* the branch? The only goal here is to avoid
having to type the branch name in the push command. Normally I rely on
tab completion but we have tons of branches, all which start with some
prefix mixed with numbers, so it becomes cumbersome to rely on tab
completion. Ideally I'd like to be able to do:

$ git push --delete origin HEAD
$ git push origin :HEAD

Is there a syntax like this available?
You can do

git push origin:<branchname>

but I don't believe HEAD is supported. It might be valuable to extend
push to have a --delete option which would maybe be useful for those
who didn't learn the full refspec syntax.

I don't think git push origin :HEAD makes too much sense, since that's
on the remote side of a refspec, and you want it interpreted
locally... I suppose it makes sense somewhat, but other refspecs with
HEAD on the remote side of the refspec don't really make sense, where
as HEAD always makes sense on the local side of the refspec.

Regards,
Jake

Re: Convenient shortcut to push delete current branch?

From: Robert Dailey <hidden>
Date: 2016-06-15 23:06:44

On Thu, Oct 1, 2015 at 1:22 PM, Jacob Keller [off-list ref] wrote:
On Thu, Oct 1, 2015 at 9:43 AM, Robert Dailey [off-list ref] wrote:
quoted
For convenient pushing of current branch, git supports this syntax:

$ git push origin HEAD

This will push your current branch up. However, is there such a
shortcut for *deleting* the branch? The only goal here is to avoid
having to type the branch name in the push command. Normally I rely on
tab completion but we have tons of branches, all which start with some
prefix mixed with numbers, so it becomes cumbersome to rely on tab
completion. Ideally I'd like to be able to do:

$ git push --delete origin HEAD
$ git push origin :HEAD

Is there a syntax like this available?
You can do

git push origin:<branchname>

but I don't believe HEAD is supported. It might be valuable to extend
push to have a --delete option which would maybe be useful for those
who didn't learn the full refspec syntax.
Push already has a --delete option.
I don't think git push origin :HEAD makes too much sense, since that's
on the remote side of a refspec, and you want it interpreted
locally... I suppose it makes sense somewhat, but other refspecs with
HEAD on the remote side of the refspec don't really make sense, where
as HEAD always makes sense on the local side of the refspec.
HEAD makes sense on the remote side if you think of it like an alias:

HEAD -> branch-name -> SHA1

HEAD simply points to branch-name. It makes sense for git to assume
that we should never do anything with real HEAD ref on the remote
side, and instead treat it as a substitution for the remote name. My
assumption may not be correct, but at the very least it should be a
niche case.

Re: Convenient shortcut to push delete current branch?

From: Mike Rappazzo <hidden>
Date: 2016-06-15 23:06:44

On Thu, Oct 1, 2015 at 2:37 PM, Robert Dailey [off-list ref] wrote:
On Thu, Oct 1, 2015 at 1:22 PM, Jacob Keller [off-list ref] wrote:
quoted
On Thu, Oct 1, 2015 at 9:43 AM, Robert Dailey [off-list ref] wrote:
quoted
For convenient pushing of current branch, git supports this syntax:

$ git push origin HEAD

This will push your current branch up. However, is there such a
shortcut for *deleting* the branch? The only goal here is to avoid
having to type the branch name in the push command. Normally I rely on
tab completion but we have tons of branches, all which start with some
prefix mixed with numbers, so it becomes cumbersome to rely on tab
completion. Ideally I'd like to be able to do:

$ git push --delete origin HEAD
$ git push origin :HEAD

Is there a syntax like this available?
You can do

git push origin:<branchname>

but I don't believe HEAD is supported. It might be valuable to extend
push to have a --delete option which would maybe be useful for those
who didn't learn the full refspec syntax.
Push already has a --delete option.
I could see adding an option for --delete-upstream that would use the
upstream remote and ref of the current branch (if they exist).
External to git you could script this from the config (completely
untested):

    if branch=$(git symbolic-ref --short HEAD); then
        if remote=$(git config branch.$branch.remote); then
            if remote_ref=$(git config branch.$branch.merge); then
                git push $remote --delete $remote_ref
            fi
        fi
    fi
quoted
I don't think git push origin :HEAD makes too much sense, since that's
on the remote side of a refspec, and you want it interpreted
locally... I suppose it makes sense somewhat, but other refspecs with
HEAD on the remote side of the refspec don't really make sense, where
as HEAD always makes sense on the local side of the refspec.
HEAD makes sense on the remote side if you think of it like an alias:

HEAD -> branch-name -> SHA1

HEAD simply points to branch-name. It makes sense for git to assume
that we should never do anything with real HEAD ref on the remote
side, and instead treat it as a substitution for the remote name. My
assumption may not be correct, but at the very least it should be a
niche case.
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help