在 Visual Studio Code for Windows 中,Git 分支不显示且无法创建分支

KHP*_*KHP 8 git visual-studio-code

所以我一直在使用 Visual Studio Code (VS Code) 并使用 Git 处理我的项目并且没有问题。我能够将 git 存储库克隆到工作空间,然后我会在左下角看到“master”,表明我克隆了一个 master 分支并且正在 master 分支上工作。然后通常我可以单击它并选择“创建新分支”并创建我自己的分支,例如“off_master”。

我不知道为什么,但是从一个多星期前开始,当我克隆一个 git 存储库时,它会下载文件,但是我没有在 VS Code 的左下角看到“master”这个词。当我点击“创建新分支”并给出一个名字时,我得到一个一般的 git 错误:

Git: Failed to execute git
Run Code Online (Sandbox Code Playgroud)

我在 git 日志中看到这些:

> git rev-parse --show-toplevel
> git checkout -q -b off_Master
> git rev-parse --show-toplevel
Run Code Online (Sandbox Code Playgroud)

我不知道为什么它开始这样做。所以我卸载了 VS Code,删除了这个似乎包含所有 VS Code 设置的目录:

C:\Users\<myId>\AppData\Roaming\Code\
Run Code Online (Sandbox Code Playgroud)

然后我重新安装了最新的 VS Code,同样的事情发生了。

当我git status从包含 .git 目录的目录发出时,我得到如下输出:

On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working tree clean
Run Code Online (Sandbox Code Playgroud)

所以看起来我正在使用 master 分支,但 VS Code 没有显示。不知何故,我无法从 VS Code 创建一个新分支。

我也尝试过这样的命令git config --list,它确实有正确的user.nameuser.emailremote.origin.url这些看起来OK:

remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
branch.master.remote=origin
branch.master.merge=refs/heads/master
Run Code Online (Sandbox Code Playgroud)

我对 git 不是很熟悉,因此我使用 VS Code 来驱动 git,因此将其恢复到工作状态非常关键......

知道为什么会发生这种情况吗?

唯一让我有点怀疑的是我正在用 Angular JS 做一些事情并升级 NodeJS 来做一些事情,但我认为这些不会对 VS Code 和 git 产生任何影响。

另一件事是,即使我删除了那个“代码”目录,当我重新安装 VS Code 时,它​​似乎拥有我之前安装的所有扩展,所以似乎并不是所有的东西都被清理干净了.. 我怎样才能清理所有东西这样看起来好像我正在安装全新的 VS Code?也许这样做并重新安装可能会有所帮助?

Jul*_*n J 21

在此输入图像描述

重现步骤 :

  1. 访问 VSCode 左侧的“源代码管理”选项卡
  2. 点击刷新按钮旁边的“三个小点”
  3. 转到“拉、推”
  4. 单击“获取”选项

享受

如果您想了解有关创建新分支以及在分支之间切换的更多信息:在 VSCode 中切换分支


Moh*_*our 9

回复很晚,但我最近遇到了这个问题并找到了解决方案。基本上git fetch --all在项目目录内的 CMD 中运行,它们应该显示出来。这是vs code的UI中的一个bug


Von*_*onC 4

检查这是否链接到Git Lens VSCode 插件

最近出现了一些问题,包括Issue 468

您可以使用 options 启动 VSCode,例如--disable-extensions查看问题是否仍然存在并且可能来自已安装的插件之一。


SendETHToThisAddress在评论中报告:

我去了Extensions >GitLens >settings icon >disable GitLens
然后运行命令git fetch --all
终于,新的枝条出现了!