Thread (9 messages) flat view 9 messages, 6 authors, 2016-06-15

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

From: Steffen Prohaska <hidden>
Date: 2016-06-15 22:43:50

On Nov 13, 2007, at 5:03 PM, Jakub Narebski wrote:
Sergei Organov [off-list ref] wrote:
quoted
Jakub Narebski [off-list ref] writes:
quoted
Sergei Organov wrote:
quoted
quoted
quoted
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:
[...]
quoted
quoted
quoted
$ 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/*
[...]
quoted
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?

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.

In my opinion its a misfeature.  "git remote prune" does the
same in a sane way.


	Steffen
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help