On Thu, Oct 1, 2015 at 2:37 PM, Robert Dailey <rcdailey.lists@xxxxxxxxx> wrote: > On Thu, Oct 1, 2015 at 1:22 PM, Jacob Keller <jacob.keller@xxxxxxxxx> wrote: >> On Thu, Oct 1, 2015 at 9:43 AM, Robert Dailey <rcdailey.lists@xxxxxxxxx> 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. > > 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 >> 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@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html