在VSCode中,在我执行pull请求并删除GitHub上的分支后,该分支仍显示在Visual Studio Code中。如果我选择分支,它会按预期给出错误。
如何从VSCode中删除这些现已删除的分支 - 我可以自动执行吗?
答案 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)
答案 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中添加任务。
为此,请按照以下步骤操作:
{ “ label”:“ Git Prune”, “ type”:“ shell”, “ command”:“ git远程修剪源”, “ problemMatcher”:[] }
如何使用它:
参考:
答案 9 :(得分:1)
答案 10 :(得分:-1)
较短的命令是:
git fetch -p
答案 11 :(得分:-1)
您可以安装名为gitlens的出色vscode扩展,该扩展使所有常见git命令GUI都基于vscode内部。没有它,我将无法生存!您可以在这里找到它: