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?
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
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.
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