Thanks Andrew.  I suspected that was the case.  Thanks for doing the
research for me so I didn't have to do it myself.  Seems like an
egregious hack, an oversight in the high-level Git architecture, or
lack of foresight in how it would actually be used.

Here is a blog post I did recently on other other thing that is really
preventing me from moving to Git for all my projects:

http://pivots.pivotallabs.com/users/chad/blog/articles/479-best-practices-for-managing-external-plugins-libraries-which-live-in-git-

See you Tuesday, looking forward to the Git-together...

-- Chad

On 8/10/08, Andrew Lenards <[EMAIL PROTECTED]> wrote:
> Chad - that's totally bizarre...  based on the tutorials and cheat sheet I
> have, you remove a branch form a repo with the following:
>
> `git branch -d $branch`
>
> There is a pretty active git channel on irc.freenode.org - I asked about
> this and here's the explanation I got.
>
> `git push` is the only command that can make changes to a remote repository.
>
> It creates and updates branches - and it has been overloaded to delete
> branches (since it's the only outgoing communication command).
>
> Apparently the key to that github link is the colon.  If you know that `git
> push origin foo` is really shorthand for `git push origin foo:foo` (because
> usually the local branch and remote branch have the same name).  So when you
> say:
>
> git push origin :somebranch
>
> You're pushing nothing to somebranch.
>
>
> Below is the transcipt of the answer I got from spearce:
>
>
> [21:43] <lenards> question - how do you remove a remote branch?  Is this
> github link wrong:
> http://github.com/guides/remove-a-remote-branch
> [21:43] <spearce> lenards: that link is actually correct
> [21:45] <lenards> spearce: I don't understand why it works... why would `git
> push` be how you remove a remote branch?
> [21:45] <spearce> lenards: git push is the only command that can make
> changes to a remote repository.  it can create branches, update branches,
> and it was overloaded to delete branches, since its the only outgoing
> communication command.
> [21:47] <lenards> spearce: thank you... okay - but the syntax shown looks
> like the same way I'd push changes to that remote branch
> [21:49] <spearce> lenards: if you look carefully at the syntax the source
> side of the argument is empty (the stuff before the :).  we are technically
> pushing _nothing_ to the remote branch to cause its deletion.
> [21:51] <lenards> spearce: hmmm... okay so if I was pushing to a remote
> branch to update it... how would it look? `git push origin
> localbranch:remotebranch` ?
> [21:51] <spearce> lenards: correct
> [21:51] <spearce> and its common for localbranch and remotebranch to be the
> same name, so "git push origin A" is an shorthand for "git push origin A:A"
>
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to