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


74

更新资料

升级到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一动身,Visual Studio就拥有了新的分支。我希望刷新能解决这个问题。

Answers:


90

如果分支已在服务器端删除,请在命令行中尝试(因为在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


5
不需要重新启动-VS应该检测对参考所做的更改并重新加载。
爱德华·汤姆森

2
这确实更新了远程分支,并且结果确实显示在Visual Studio中。为了给我提供赏金,我想知道VS内部是否有一个执行prunegit命令的按钮。
JabberwockyDecompiler

我可以确认不需要重新启动。奇怪刷新按钮实际上并未修剪分支本身。
David De Sloovere '16

@MamunReza好的。我已经相应地编辑了答案。
VonC

1
@markthegrea是的,在命令行中,在您的本地仓库中
VonC

46

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

您可以配置git以在使用以下命令运行的获取/拉取时自动执行此操作:

git config remote.origin.prune true –global

更新:

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

  1. 在“团队资源管理器”中,单击“主页”,然后单击“设置”: 在此处输入图片说明

  2. 选择全局设置

  3. 将“在获取过程中修剪远程分支”更改为“ True”

3
有趣。+1我在上面的答案中包含了配置,以提高可见性。
VonC

33

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

git config remote.origin.prune true

执行提取操作时,该操作将从列表中删除已删除的分支。


3
我喜欢只要我的回购协议存在就可以继续工作!
madannes

2
哇。谢谢!我将与我的同事分享。
庞加玛

2
因为这是一次更好的解决方案。
BBlake

12

VS 2017似乎具有在Team Explorer中可配置的支持:

Team Explorer主页设置Git>全局设置在提取过程中修剪远程分支:未设置,正确或错误



0

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


对于GitHub Pull Requests,可以从GitHub站点删除分支。没有选择从该过程中取消发布。您确实可以选择在此时删除分支,也可以单击图标删除分支。我也没有在Visual Studio中看到取消发布。我正在更新问题,以包括我正在使用的VS版本,因为我意识到自己不包括该版本。
JabberwockyDecompiler
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.