I have noticed TortoiseGit seems to contain every feature branch I ever created, both in drop-downs for local branches AND remote, even though many of the remote branches were deleted after being merged into master.
Is there a way in TortoiseGit to synhronise which branches are listed to those actually existing?
And a slight tangent... in terms of Git itself is a local version of a branch considered totally decoupled from the remote? i.e. there is no reason why deleting the remote version should automatically mean the local one is deleted?
You can do, as mentioned in issue 1139, a Fetch with prune.
Or remove Remote Branch from list in Pull issue 2765.
That will clean-up any remote branches still locally referenced, while they are already deleted in the upstream repo.
in terms of Git itself is a local version of a branch considered totally decoupled from the remote?
It can be.
If a branch has an remote tracking branch associated to it, git branch -vv
can show it.
But removing said remote tracking branch has no bearing on the local branch.
i.e. there is no reason why deleting the remote version should automatically mean the local one is deleted?
Sure: you pushed by mistake a 'test
' branch:
- you want to delete it on the remote repo
- but you very much want to keep it on your local repo to pursue some local tests you have no intention of pushing.
To the last question, I believe that's an aspect of being "distributed". While local repo and remote repo may share contents to each other, they exist independently.
In practice this design may prevent trouble. If fetch
completely reflects changes of "local branch in remote repo" to "remote branch in local repo", and someone removed a branch in remote repo, we will lose one local pointer of some commit (maybe the last one).