如何从Visual Studio 2015中删除已删除的Git分支

时间:2017-08-27 18:10:41

标签: git visual-studio-2015

Visual Studio继续显示我已拉出的任何分支,即使已删除该分支(并且我没有将其作为所选分支)。

  • git fetch --all --prune”不会删除它们。 git config
  • remote.origin.prune true”(suggested here)不会删除它们。

如何从系统中删除已删除的分支?

更新:我想要一种方法来确定哪些分支已经消失并删除它们。如果我们专门选择它们,那么迟早有人会错误地删除正在使用的分支。

5 个答案:

答案 0 :(得分:4)

prune是关于删除遥控器上不再存在的任何远程跟踪引用。

因此,如果分支仍然存在于远程端,则不会在本地删除。

如果分支是deleted locally (with Visual Studio),则在下次推送时仍会重新创建其远程跟踪实例。

您需要确保分支是also deleted on the remote side

git push origin --delete abranch

答案 1 :(得分:4)

我有一个远程分支,即使在服务器上被删除后,它们也不会消失。有关设置“修剪远程分支”的提示对我有用。我找到了here

  

转到“团队资源管理器”,然后单击“主页”按钮。然后设置>存储库   设置,然后将“在获取过程中修剪远程分支”下拉列表设置为   真正。不要忘记点击“更新”按钮来保存您的修改。

更改设置后,我对已删除的分支之一进行了访存,所有已删除的分支都消失了。

答案 2 :(得分:3)

Visual Studio 2015& 2017

  1. 打开团队资源管理器并转到分支视图。
  2. 找到要删除的分支。确保你不是 检查到该分支 - 您无法删除您所在的分支 目前在工作。
  3. 右键单击分支名称,然后选择“删除”。如果你有 未发布的更改,Visual Studio将询问并确保您想要 删除分支,这样你就不会失去工作 Image

答案 3 :(得分:2)

在较新版本的visual studio 2019例如16.8.6中,您需要转到设置并找到git设置,如下所示:

enter image description here

答案 4 :(得分:0)

几乎所有将从远程删除分支“删除”的基本解决方案也很可能删除尚未被推送的本地分支,因为它们也没有远程引用。

为了避免这种警告,您可以编写一个shell脚本(在git fetch --prune之后):

  1. 使用git branch -vv获取带有远程引用的分支列表(可能在2.13.x中添加到git-branch的--format标志将允许更容易解析的格式,但我还没有使用过此功能)
  2. 在此列表中搜索带有遥控器的分支(管道到grep -e '\['应该可以做到这一点)
  3. 使用一些花哨的grep工作解析分支名称
  4. 循环移动遥控器并检查远程参考
  5. 如果找不到远程
  6. ,请删除分支

    如果您想要一个完全代码安全的简单解决方案,您可以使用此命令轻松安全地删除已(完全)合并到特定分支的分支:

    git branch -D `git branch --merged origin/master | grep "^  " | xargs`
    

    必要时替换适当的分支。 grep阻止它尝试删除当前检出的分支。

    注意,这个删除本地分支引用,即使远程删除没有删除,但提交是安全的,如果你再次需要这些分支,你可以随时检查它们。 / p>