使用Git时如何在Visual Studio中刷新分支(本地/远程)?

Jab*_*ler 67 git visual-studio

摘要

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

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

我所期待的

我希望点击检查差异的按钮,链接或右键单击功能,如果发现有任何问题,"此分支不再存在,您是否要将其从Visual Studio中删除?".

技术规格

我正在使用Visual Studio 2015 Enterprise

附加示例

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

Von*_*onC 86

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

git remote prune origin --dry-run
Run Code Online (Sandbox Code Playgroud)

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

同时删除相应的本地分支git branch -d aBranch.

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

注意:我之前在2013年提到了配置

git config remote.origin.prune true
Run Code Online (Sandbox Code Playgroud)

这将自动执行的过程,似乎是由Visual Studio支持的,下文提到的Yaniv.

  • 应该不需要重新启动 - VS应该检测您对refs所做的更改并重新加载它们. (5认同)
  • 这确实更新了远程分支,并且结果确实显示在Visual Studio中。为了给我提供赏金,我想知道VS内部是否有一个执行`prune` git命令的按钮。 (2认同)

Tha*_*den 30

根据这篇博客文章,您可以通过设置git属性

git config remote.origin.prune true
Run Code Online (Sandbox Code Playgroud)

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

  • 我喜欢,只要我的回购在身边,它就会继续工作! (3认同)
  • 哇。谢谢!我将与我的同事分享。 (2认同)
  • 因为这是一次更好的解决方案。 (2认同)

yan*_*niv 30

来自:https: //intovsts.net/2017/01/17/refresh-git-remote-branches-in-visual-studio/

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

git config remote.origin.prune true –global
Run Code Online (Sandbox Code Playgroud)

更新:

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

  1. 在团队资源管理器中,单击主页然后设置: 在此输入图像描述

  2. 选择全局设置

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

  • 有趣.+1我在上面的答案中包含了配置以获得更多可见性. (2认同)

Ste*_*ell 14

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

在此处输入图片说明


小智 11

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

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