VisualStudio 代码-删除 GitHub 上仍然显示在 VSCode 中的分支?

在 VSCode 中,在执行一个 pull 请求并删除 GitHub 上的分支之后,该分支仍然会出现在 VisualStudio 代码中。如果我选择这个分支,它会像预期的那样给出一个错误。

如何从 VSCode 中删除这些现已删除的分支? 我能自动删除吗?

149000 次浏览

从 GitHub 删除的分支很好... ... 刚刚从 GitHub 删除。您的机器上仍然有分支的本地副本。要删除本地分支,请运行 git branch -d the_local_branch。VS Code 中没有这样做的命令,但是您可以使用 View: Toggle Integrated Terminal命令在 VSCode 中启动终端并从中运行命令。

有关分公司管理的更多信息,请访问 git 文档 -https://git-scm.com/book/be/v2/Git-Branching-Branch-Management

我找到了解决的办法。因此,您需要删除连接到 Github 回购的遥控器,然后再次添加遥控器。

从 Github 删除的所有分支将不再显示在 vscode 中。假设 origin是远程回购的名称。

git remote remove origin

然后

git remote add origin git@github.com:your-username/repo-name.git

通过打开 Command Palette (Ctrl-Shift-P)然后选择 Git: 删除 Branch..。,可以从 Visual Studio Code 中删除本地分支,然后可以通过从列表中选择适当的分支来删除本地分支。

显然,这个特性是有意为之的。我发现从 Github 删除所有已删除的远程分支的正确方法是运行以下命令。

git fetch --prune

然后重新启动可视化工作室,从命令面板中删除分支

您所需要做的就是运行这个命令:

git remote prune origin

你可以做一些额外的事情,因为有时候打开一个终端就为了这个很烦人。.您可以在 vscode 中添加任务。

要做到这一点,请遵循以下步骤:

  1. 在 VSCode 查看 > 命令调色板中(cmd/ctrl + Shift + P)
  2. 类型 配置任务
  3. 选择 从模板创建 tasks.json 文件,将在 。 vscode文件夹下创建一个新文件。
  4. Inside asks array 添加以下内容:

{ “标签”“ Git Prune” “ type”: “ shell” “命令”: “ git 远程修剪起源”, “ problem Matcher”: [] }

使用方法:

  1. 打开命令面板
  2. 键入 运行任务并选择它
  3. 选择 Git Prune

参考文献:

  1. 该死的李子

简短的命令是:

git fetch -p

打开命令面板(Ctrl + Shift + P)并选择 Git: Fetch (Prune)

特写于2018年11月20日被 合并了转换为 VS 代码。

我将这个问题解释为: 我如何删除已经合并的 本地分支,因为我一直从命令面板中使用 Git Fetch (Prune)。这可能被认为是一种“黑客行为”,但这就是我所使用的。在 PowerShell 终端中:

$branches = (git branch --merged).replace(" ", "").replace("*", "") | ? { $_ -ne "develop" -and $_ -ne "master" }
foreach ($branch in $branches) { git branch $branch -d }

如果您不熟悉 PoSH,可以这样做: 第一行获取所有合并分支的名称(development 和 master 除外) ,第二行循环遍历该列表并运行“ git Branch-d”。只要完全合并了分支,您就会看到:

Deleted branch <branch name> (was <commit ID>).

每根树枝。偶尔我会遇到一个未能被删除的分支——如果发生这种情况,并且你确信它可以安全地被删除(也就是说,你不会丢失尚未存储的本地工作) ,你可以运行:

git branch <branch name> -D

注意大写的 D-用力删除了本地分支。

您可以使用以下命令删除所有本地分支(主服务器除外) :

git branch -r | grep -v "master" | xargs git branch -D

您可以删除所有仍然在 VSCode 中显示为 origin/XXXX但在 origin中已经删除的分支,具体方法如下:

git fetch --prune

注:

上面的第一个命令(取自 https://stackoverflow.com/a/52006270/3120163) :

  • 列出所有的分支机构
  • 从列表中删除主分支
  • 删除列表中的分支

您不必再重新启动 git fetch --prune和 VSCode 了。
使用 VSCode 1.52(2020年11月) ,您现在可以:

Git: 取东西要修剪

启用 git.pruneOnFetch设置将使 VS 代码在获取远程引用时运行 git fetch --prune

从 GitHub 删除后,本地不再有额外的分支。

参见 PR 89249,修复 第86813期:

用法:

{
"git.pruneOnFetch": true
}

默认情况下,设置为 false

这将向所有 git 提取添加 --prune标志。

在新版本的 Visual Studio 2019中,例如16.8.6,你需要进入设置并找到 git 设置,如下所示: enter image description here

Davidhu 的这个方法在下面稍微触摸一下。

这个命令删除 Github 上删除的分支,这些分支仍然显示在 Vs code 中 大括号[原点]中的是远程回购的名称。

Git 远程删除 起源

然后

Git 远程添加原点 Git@github.com: your-username/repo-name. git

或者你可以从 V 代码中手动删除它

  1. 单击 V 代码左侧的 源代码控制图标

  2. 点击“ 更多的图标或更多的行动”,“然后点击“ 罗莫特”,它会向你显示“ 加上遥控器”或“ 移除遥控器

  3. 点击“ 移除遥控器”,它会显示你所有远程代码的列表,然后你可以选择一个你想删除,然后按“回车”