git/list[1] front-page[2] threads[3] people[4] search[5] about
 

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

From
Andreas Ericsson <ae@op5.se>
Date
Nov 13, 2007, 20:01 UTC
Message-ID
<473A027E.5000107@op5.se>
In-Reply-To
<A919E788-C5D0-4404-95D4-869BAFE868AC@zib.de>
Steffen Prohaska wrote:
Show 59 quoted lines
> 
> On Nov 13, 2007, at 5:03 PM, Jakub Narebski wrote:
> 
>> Sergei Organov <osv@javad.com> wrote:
>>> Jakub Narebski <jnareb@gmail.com> 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.
> 
> "git remote prune origin" should be used to clean up stale
> remote-tracking branches.
> 
> BTW, what's the right name for this type of branch.
> I found "tracking branch", "remote tracking branch", and
> "remote-tracking branch" in the manual. The glossary only
> mentions "tracking branch".  Or is it a "tracked remote branch"
> as the output of "git remote show" suggests.  I remember,
> there was a lengthy discussion on this issue.  Does someone
> remember the conclusion?
> 

It seems we agreed to disagree. However, a "tracked remote branch" is definitely not in your local repo. I think remote-tracking branch grammatically is the most correct, as that's the only non-ambiguous form (remote tracking branch might mean "remote tracking-branch" or "remote-tracking branch"). It's also the only form that works when used with "local" in front of it. "Tracked remote branch" will always be a "remote branch", no matter how you prefix it.

I hate that part of git nomenclature with a passion. It's ambiguous at best and, as a consequence, downright wrong for some uses.

Show 8 quoted lines
> 
>> So I'm not sure if it is a bug, misfeature or a feature.
> 
> It doesn't make sense to delete remote-tracking branches
> locally if they are still present at the remote.  The main
> purpose of a remote-tracking branch is to be identical to the
> real remote branch.
> 

Yes, but it does make sense to say "I no longer want to track that remote branch". If that should be implied by the user deleting its local counterpart is, I think, what this discussion is about.

-- 
Andreas Ericsson                   andreas.ericsson@op5.se
OP5 AB                             www.op5.se
Tel: +46 8-230225                  Fax: +46 8-230231
Previous: Sergei OrganovNext: Andreas Ericsson
Message 20 of 28 in “[Newbie] How to *actually* get rid of remote tracking branch?”
  1. Sergei OrganovNov 13, 2007
  2. Jakub NarebskiNov 13, 2007
  3. Sergei OrganovNov 13, 2007
  4. Johannes SchindelinNov 13, 2007
  5. Sergei OrganovNov 13, 2007
  6. Johannes SchindelinNov 13, 2007
  7. Sergei OrganovNov 13, 2007
  8. Jan HudecNov 17, 2007
  9. Jakub NarebskiNov 13, 2007
  10. Steffen ProhaskaNov 13, 2007
  11. Jakub NarebskiNov 13, 2007
  12. osv@javad.comNov 13, 2007
  13. Lars HjemliNov 13, 2007
  14. Sergei OrganovNov 13, 2007
  15. Steffen ProhaskaNov 13, 2007
  16. Jan HudecNov 17, 2007
  17. Improve description of git-branch -d and -D in man page.Jan Hudec, Nov 17, 2007
  18. Sergei OrganovNov 19, 2007
  19. Sergei OrganovNov 13, 2007
  20. Andreas EricssonNov 13, 2007
  21. Andreas EricssonNov 13, 2007
  22. Jakub NarebskiNov 13, 2007
  23. J. Bruce FieldsNov 13, 2007
  24. Junio C HamanoNov 13, 2007
  25. Andreas EricssonNov 14, 2007
  26. Steffen ProhaskaNov 14, 2007
  27. Sergei OrganovNov 13, 2007
  28. Jakub NarebskiNov 13, 2007

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.