Visual Studio Code - 删除仍在VS Code中显示的GitHub上删除的分支?

时间:2016-07-21 18:46:52

标签: visual-studio github visual-studio-code

在VSCode中,在我执行pull请求并删除GitHub上的分支后,该分支仍显示在Visual Studio Code中。如果我选择分支,它会按预期给出错误。

如何从VSCode中删除这些现已删除的分支 - 我可以自动执行吗?

12 个答案:

答案 0 :(得分:72)

显然,此功能是故意的。我发现删除从Github删除的所有远程分支的正确方法是运行以下命令。

git fetch --prune

然后重新启动visual studio以从命令面板中删除分支

答案 1 :(得分:27)

可以通过打开Command Pallete(Ctrl-Shift-P)然后选择 Git:Delete Branch ... 从Visual Studio Code中删除本地分支,然后可以通过选择删除本地分支列表中的相应内容。

答案 2 :(得分:12)

从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

答案 3 :(得分:4)

我找到了解决这个问题的方法。所以你需要删除链接到Github仓库的遥控器,然后再添加遥控器。

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

git remote remove origin

然后

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

答案 4 :(得分:3)

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

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

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

Deleted branch <branch name> (was <commit ID>).
每个分支的

。有时,我会遇到无法删除的分支-如果发生这种情况,并且您确定可以安全删除它(即,您不会丢失尚未存储的本地工作),则可以运行:

git branch <branch name> -D

注意大写字母D-强行删除本地分支。

答案 5 :(得分:2)

打开命令面板(Ctrl + Shift + P),然后选择 Git:提取(修剪)

featuremerged于2018年11月20日被加入VS Code。

答案 6 :(得分:2)

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

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

您可以使用以下命令删除在VSCode中仍显示为origin/XXXX但已在origin中删除的所有分支:

git fetch --prune

答案 7 :(得分:2)

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

Git: Prune on fetch

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

从GitHub上删除它们后,本地不再有多余的分支。

答案 8 :(得分:1)

您需要做的就是运行以下命令:

git remote prune origin

您可以做些额外的事情,因为有时为此而打开终端很烦。您可以在vscode中添加任务。

为此,请按照以下步骤操作:

  1. 在VSCode中视图>命令面板(cmd / ctrl + Shift + P)
  2. 键入配置任务
  3. 从模板中选择 Create task.json文件,然后将在 .vscode 文件夹下创建一个新文件。
  4. 内部任务数组添加以下内容:

{             “ label”:“ Git Prune”,             “ type”:“ shell”,             “ command”:“ git远程修剪源”,             “ problemMatcher”:[]     }

如何使用它:

  1. 打开命令面板
  2. 输入运行任务并将其选中
  3. 选择Git Prune

参考:

  1. Git prune

答案 9 :(得分:1)

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

答案 10 :(得分:-1)

较短的命令是:

git fetch -p

答案 11 :(得分:-1)

您可以安装名为gitlens的出色vscode扩展,该扩展使所有常见git命令GUI都基于vscode内部。没有它,我将无法生存!您可以在这里找到它:

https://gitlens.amod.io/