83

更新

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

在此处输入图像描述

概括

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

问题

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

我的期望

我希望有一个按钮、链接或右键单击功能可以在单击时检查差异,如果发现任何差异,它会询问“此分支不再存在,您想从 Visual Studio 中删除它吗?”。

技术规格

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

附加示例

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

4

6 回答 6

95

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

git remote prune origin --dry-run

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

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

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

注意:我之前提到过2013年的配置

git config remote.origin.prune true

这将使该过程自动化,并且似乎受到 Visual Studio 的支持如下yaniv所述


在 VSCode 上,也尝试激活设置“Git: Prune on Fetch”

"git.pruneOnFetch": true
于 2015-11-23T09:59:35.983 回答
57

来自:“在 Visual Studio 中刷新 git 远程分支

您可以将 git 配置为在使用以下命令运行的 fetch/pull 时自动执行此操作:

git config remote.origin.prune true –global

更新:

Visual Studio 2017 版本 15.7.3 及更高版本您可以使用 UI 执行此操作:

  1. 在 Team Explorer 中,单击 Home,然后单击 Setting: 在此处输入图像描述

  2. 选择全局设置

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

于 2017-06-06T14:11:25.360 回答
33

根据这篇博文,您可以通过以下方式设置 git 属性

git config remote.origin.prune true

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

于 2017-03-18T09:56:57.790 回答
17

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

在此处输入图像描述

于 2020-12-21T20:11:01.147 回答
13

VS 2017 似乎支持在 Team Explorer 中配置:

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

于 2017-12-07T14:50:45.463 回答
0

您应该先取消发布分支,然后其他人会注意到该分支未发布(通过尝试拉取分支他们会得到错误),删除本地分支实际上是一个单独的过程本身,必须完成才能摆脱无论如何,分支。

于 2015-11-23T17:16:34.147 回答