在VSCode中,在我执行拉取请求并删除GitHub上的分支后,该分支仍然显示在Visual Studio代码中。如果我选择分支,它会按预期给出错误。
如何从VSCode中删除这些现已删除的分支 - 我可以自动执行吗?
显然,这个功能是有意的。我发现删除从Github删除的所有远程分支的正确方法是运行以下命令。
git fetch --prune
然后重新启动visual studio以从命令选项板中删除分支
通过打开Command Pallete(Ctrl-Shift-P)然后选择Git:Delete Branch ...,可以从Visual Studio Code中删除本地分支,然后可以通过从列表中选择适当的分支来删除本地分支。
从GitHub中删除的分支很好......刚从GitHub中删除。您的计算机上仍有本地分支副本。删除本地分支运行git branch -d the_local_branch
。 VS代码中没有命令可以执行此操作,但您可以使用View: Toggle Integrated Terminal
命令从VSCode启动终端并从中运行命令。
有关分支管理的更多信息,请访问git文档 - https://git-scm.com/book/be/v2/Git-Branching-Branch-Management
我将问题解释为:如何删除已合并的本地分支,因为我一直在使用命令选项板中的Git Fetch(Prune)。这可能被视为“黑客”,但它是我使用的。在PowerShell终端中:
$branches = (git branch --merged).replace(" ", "").replace("*", "") | ? { $_ -ne "develop" -and $_ -ne "master" }
foreach ($branch in $branches) { git branch $branch -d }
如果您不熟悉PoSH,这就是它的作用:第一行获取所有合并分支的名称(开发和主控除外),第二行循环遍历该列表并运行“git branch -d ”。只要分支完全合并,您应该看到:
Deleted branch <branch name> (was <commit ID>).
为每个分支。偶尔我会遇到一个无法删除的分支 - 如果发生这种情况,并且你确定删除它是安全的(即你不会丢失尚未存储的本地工作),你可以运行:
git branch <branch name> -D
注意大写字母D - 强制删除本地分支。
我找到了解决这个问题的方法。因此,您需要删除链接到Github存储库的远程控制器,然后再次添加远程控制器。
从Github删除的所有分支将不再显示在vscode中。假设origin
是远程仓库的名称。
git remote remove origin
然后
git remote add origin [email protected]:your-username/repo-name.git
您需要做的就是运行此命令:
git remote prune origin
你可以做的额外的东西,因为有时为了打开终端而烦人...你可以在vscode中添加一个任务。
为此,请按照以下步骤操作:
{“label”:“Git Prune”,“type”:“shell”,“command”:“git remote prune origin”,“problemMatcher”:[]}
如何使用它:
参考:
较短的命令是:
git fetch -p