How can I refresh the list of remote branches in my Visual Studio 2017 Team Explorer panel?
How can I refresh the list of remote branches in my Visual Studio Team Explorer panel?
In the Visual Studio 2017 Team Explorer, Branches panel, I could see the 10 or so branches in our VSTS instance.
Then in Chrome, I deleted some of the older branches and created a new branch.
Switched back to VS 2017, but the list of remotes/origin
branches still shows the old list, and I can't find anyway to refresh it.
I tried changing to a different repo, the F5 Refresh on the Team Explorer header, I even closed and reopened VS 2017... but nothing refreshes the list to match what VSTS portal shows.
Solution 1:
If you want Visual Studio 2017 to ALWAYS prune on fetch (I do, I add and remove a LOT of branches for UI work), once you install 3rd party Git (can do from Settings within Team Explorer, Git section) there will be a new option in Global Settings (also in Git section) to 'Prune remote branches during fetch' which you can set to True. I did not have this option before updating my VS to 15.5 (I was on 15.0).
Solution 2:
You can Fetch in Visual Studio Team Explorer.
View => Team Explorer
Solution 3:
In your local repo directory, you should use git fetch -p
(or git fetch --prune
) command. Then you will find the deleted branches from remote won't showed in remotes/origin
in VS Branches panel.
This is because git fetch
won't check the tracking references exist or not from remote repo. But for git fetch -p
, it will check if the tracking references exist or not and delete non-existing ones before fetching.
Solution 4:
If you use then new "New Git User experience" (Enabled by Tools -> Options -> Environment -> Preview Features -> having "New Git User experience" checked).
Then the steps to get to the same location as referenced by TerraElise answer above would be going to "Git" option on the top menu pane -> settings to the same location to set your "Prune on fetch" option.
Solution 5:
You have to fetch first. All Visual Studio is doing is interacting with your local repo. If you don't fetch the branches from the remote, it won't know they're present.