使用 Git 时如何刷新 Visual Studio 中的分支 (local/remote)?

How do I refresh branches (local/remote) in Visual Studio when using Git?

更新

升级到 Visual Studio 2019 16.8.X 有一个新的 git 工作流程。这还包括一个获取按钮。

总结

我正在学习如何将 Git 与 Visual Studio 结合使用。我最近做了一个拉取请求,其中功能分支在合并后被删除。功能分支仍然显示在 Visual Studio 中我的本地和远程分支中。我知道如何右键单击并删除分支,这是一种解决方法,因为团队中的其他人可能会在我不知情的情况下完成对我拥有的分支的拉取请求。如果他们之后删除了分支,我不会知道他们这样做了。

问题

如何使用 Git 上的内容刷新 Visual Studio 分支?

我的期望

我希望有一个按钮,link,或者右键单击功能,点击检查差异,如果发现任何差异,它会询问,“这个分支不再存在,你想把它从 Visual Studio?".

技术规格

我正在使用 Visual Studio 2015 Enterprise(对于低于 16.8 的版本,似乎仍然是 VS 2019 的症状)

附加示例

这可能是另一个问题,但它非常适合这里。我只是注意到,如果我创建一个分支(比如在一个 VM 中并查看与另一个相同的 repo),Visual Studio 没有 git fetch 选项来更新分支列表。顶部的刷新按钮似乎没有做任何事情。一旦我 运行 git fetch 在 bash 中, visual studio 就有了新的分支。我希望刷新能够解决这个问题。

如果在服务器端删除了分支,在命令行中尝试(因为Visual Studio中似乎没有直接存在这样的“按钮”):

git remote prune origin --dry-run

(去掉--dry-run选项实际删除本地分支)

也删除相应的本地分支git branch -d aBranch

然后 重新启动您的 Visual Studio,并检查它是否选择更新的分支列表。 (评论提到你不必 restart/refresh VS)

注意:我mentioned before in 2013配置

git config remote.origin.prune true

这将使该过程自动化,并且似乎是 supported by Visual Studio, as by yaniv


在 VSCode 上,还尝试激活设置“Git:提取时修剪”

"git.pruneOnFetch": true

你应该先Unpublish the branch,然后其他人会注意到分支未发布(通过尝试拉分支他们会得到错误),删除本地分支实际上是一个单独的过程本身,必须完成是为了摆脱分支。

According to this blog post,你可以通过

设置一个git属性
git config remote.origin.prune true

这将在您执行提取时从您的列表中删除已删除的分支。

发件人:“Refresh git remote branches in Visual Studio

您可以将 git 配置为在 fetch/pull 运行 上自动执行此命令:

git config remote.origin.prune true –global

更新:

Visual Studio 2017 版本 15.7.3 及更高版本你可以使用 UI :

  1. 在团队资源管理器中,单击主页,然后单击设置:

  2. Select 全局设置

  3. 将“获取期间修剪远程分支”更改为“True”

VS 2017 似乎具有可在团队资源管理器中配置的支持:

团队资源管理器主页 设置 Git > 全局设置 在获取期间修剪远程分支:未设置、真或假

对于那些寻找如何在 VS2019 或 VS2022 中配置修剪的人,它已移至 'Git' 菜单下。