在VSCode中,我执行拉取请求并删除GitHub上的分支后,该分支仍显示在Visual Studio Code中。如果我选择分支,则将出现错误,如预期的那样。
如何从VSCode中删除这些现在已删除的分支-我可以自动做到吗?
Answers:
显然,此功能是有意的。我发现删除从Github中删除的所有远程分支的正确方法是运行以下命令。
git fetch --prune
然后重新启动Visual Studio以从命令面板中删除分支
origin/branch_name
从VSCode的快速切换git菜单中删除。例如,如果您有一个本地分支test
并将其推送到Github,则有两个分支test
,并且origin/test
在git分支菜单上,修剪只会删除该origin/test
分支,而不是该test
分支。
git branch
或单击分支名称以查看包含所有可用分支的下拉列表后,我仍然看到列表中的所有分支
git branch
仅列出本地分支,此命令应该删除这些remotes/branch_name
分支。尝试git branch -a
看一切。
可以通过以下方法从Visual Studio Code中删除本地分支:打开命令面板(Ctrl-Shift-P),然后选择Git:Delete Branch ...,然后可以从列表中选择适当的分支来删除本地分支。
从GitHub删除的分支很好...只是从GitHub删除。您的计算机上仍具有分支的本地副本。要删除本地分支,请运行git branch -d the_local_branch
。VS Code中没有命令可以这样做,但是您可以使用View: Toggle Integrated Terminal
command在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,可以执行以下操作:第一行获取所有合并分支的名称(develop和master除外),第二行遍历该列表并运行“ git branch -d ”。只要分支完全合并,您应该会看到:
Deleted branch <branch name> (was <commit ID>).
对于每个分支。有时,我会遇到无法删除的分支-如果发生这种情况,并且您确定可以安全删除它(即,您不会丢失尚未存储的本地工作),则可以运行:
git branch <branch name> -D
请注意大写字母D-强制删除本地分支。
simple | complex
分隔线的复杂一侧😉–
您需要做的就是运行以下命令:
git remote prune origin
您可以做一些额外的事情,因为有时为此而烦恼的是打开一个终端。.您可以在vscode中添加一个任务。
为此,请按照以下步骤操作:
{“ label”:“ Git Prune”,“ type”:“ shell”,“ command”:“ git remote prune起源”,“ problemMatcher”:[]}
如何使用它:
参考:
git remote prune origin
与接受的答案是否不同git fetch --prune
?“运行任务”详细信息很棒,感谢您发布它
您可以使用以下方法删除所有本地分支(master除外):
git branch -r | grep -v "master" | xargs git branch -D
您可以删除所有仍显示为origin/XXXX
VSCode的分支,但已经使用以下命令删除origin
了:
git fetch --prune
注意:
上面的第一个命令(取自https://stackoverflow.com/a/52006270/3120163):
git fetch --prune
更新/删除远程分支引用和git branch -d <branch-name>
删除本地分支(-D
强制)的组合。重启VSCode刷新调色板