Subject: Re: [Newbie] How to *actually* get rid of remote tracking branch?

From: Jakub Narebski <[email-masked]>
Date: Tue, 13 Nov 2007 17:03:16 +0100

Sergei Organov <[email-masked]> wrote:
> Jakub Narebski <[email-masked]> writes:
>> Sergei Organov wrote:

>>> I want to get rid of origin/pu remote tracking branch. What do I do?
>>> I RTFM git-branch. What does it suggest?
>>> 
>>> git branch -d -r origin/pu
>>> 
>>> So far so good. However, it doesn't seem to work in practice:
[...]
>>> $ git branch -d -r origin/pu
>>> Deleted remote branch origin/pu.
>>> $ git remote show origin
>>> * remote origin
>>>   URL: git://git.kernel.org/pub/scm/git/git.git
>>>   Remote branch(es) merged with 'git pull' while on branch master
>>>     master
>>>   New remote branches (next fetch will store in remotes/origin)
>>>     pu
>>>   ^^^^^^^^^^^^^^^^^^^ What???  
>>>   Tracked remote branches
>>>     html maint man master next todo
>>
>> Check out what do you have in .git/config file, in the
>> [remote "origin"] section. Most probably (if you cloned this
>> repository using new enough git) you have wildcard refspec there,
>> which means that git would pick all new branches when
>> fetching / pulling from given repository. 
> 
> Sure, I've cloned git.git using rather recent git, so .git/config has:
> 
>       fetch = +refs/heads/*:refs/remotes/origin/*

[...] 
> Isn't "git branch -d -r" supposed to do whatever magic is required to
> get rid of the remote branch? Currently it seems like a bug introduced
> by addition of wildcards refspecs, right?

No, the '-r' part translates 'pu' into 'refs/remotes/origin/pu', and
the '-d' option removes branch locally. It is meant I think to remove 
tracking of branches which were dropped in remote, as I think that 
wildcard refspec does create new branches, but do not delete dropped 
branches.

So I'm not sure if it is a bug, misfeature or a feature.

Can anyone better versed in wildcard refspecs speak up, please?

-- 
Jakub Narebski
Poland