VS Code - git 存储库有太多活动更改,将仅启用 Git 功能的子集

VS Code - The git repository has too many active changes, only a subset of Git features will be enabled

我正在设置 VS Code 以处理保存在 BitBucket 中的现有 Salesforce 项目。

我将存储库克隆到我的设备上,现在当我打开 VS Code 时,我收到消息“'C:\Users[my repository directory]' 的 git 存储库有太多活动更改,只有 Git 功能将被启用。

当我转到左侧菜单中的 Git 时,它说我有 5000 个分阶段更改,并且似乎认为这些更改是我删除了文件,即使我去时可以看到它们文件路径我自己。

建议?

Visual Studio代码详情: 版本:1.42.0(用户设置) 提交:ae08d5460b5a45169385ff3fd44208f431992451 日期:2020-02-06T10:51:34.058Z 电子:6.1.6 Chrome:76.0.3809.146 Node.js:12.4.0 V8:7.6.303.31-电子.0 OS: Windows_NT x64 10.0.18362

检查 git ls-files --eol (Git 2.8+) 这是否是一个停产问题。

如果是,那么:

  • 类型 git 配置 --global core.autocrlf false
  • 重新克隆您的存储库
  • 检查问题是否在 VSCode
  • 上仍然存在

好吧,看来这与换行符有关!感谢您的指导!

我删除了本地文件,更新了全局配置设置以将 autocrlf 设置为 false(最后我不得不将另一个全局配置设置 core.longpaths 也更改为 true)。然后我重新克隆,现在一切正常!

我很想了解这里的机制---我假设 autocrlf 设置获取远程文件并编辑所有换行符以使其与您的方式匹配 OS 换行。

所以既然 git 一直认为我删除了所有文件(并且 ls-files 什么也没返回),这是否意味着在克隆过程中有一些文件以这种方式被更改所以 git 不知道我的文件在哪里?如果是这样,这应该是哪个文件?

问题是,如果您进行大量更改,vs code 需要一些时间。 当您手动删除文件或将文件添加到存储库时,通常会发生这种情况。 首先,

  • 提交前不要同步。
  • 如果您在 "the source control tab" 上看到时钟图标,请稍等。因为你不能在那个图标消失之前提交。
  • 如果您尝试同步,它就会进入循环。

从字面上看,解决方案是等待查看源代码管理选项卡上的更改数量。然后提交并同步。

幸运的是,我的决定很简单。我在复制项目时不小心删除了 .gitignore,恢复该文件后问题就解决了。

我的情况是,通过更改我打开 VS Code 的方式解决了这个问题。

当我将项目文件夹拖到刚刚打开的 VS Code window 中时,出现“太多活动更改”消息,可能是 VS Code 将当前项目解释为上一个收费项目。

相反,当我转到项目文件夹并放入“打开方式”和 select VS Code 时,问题就消失了。

我是 运行 一个外部工具,当我在 CODE 中打开项目时,它可以快速进行大量更改,这发生了。唯一修复它的方法是将整个存储库重新克隆到一个新目录。

始终保留 .gitattributes 和 .gitignore 文件以避免此类问题

我遇到了同样的问题,并找到了一个具有非常直接解决方案的帖子。

问题是我克隆了一个存储库,但没有 .gitignore 文件。

  • 我只是将 .gitignore 文件添加到根文件夹,
  • node_modules写入其中,
  • 已保存,问题消失。

这里是线程的link:https://forum.freecodecamp.org/t/vs-code-has-5000-files-that-need-to-be-commit/250686/5

我参与的其他项目的 .gitignore 文件中也有这一行,所以我想这是一个标准。此外,它确实有意义,因为作为开发人员,我们不想将所有节点模块上传并下载到 git,而是使用 package.json 文件来共享有关我们需要在哪些模块上工作的信息特定项目。

请尝试一下并将其标记为正确的解决方案,因为其他“解决方法”可能无法解决缺少 .gitignore 文件且其中包含 node_modules 的问题。

我的解决方法是简单地禁用 git 扩展。

这个问题我遇到过很多次了。解决方案是确保您正确打开项目。例如,我有一个名为后端的地图,在该地图中我有另一个名为项目的地图(这是我的克隆项目)。当我打开 vscode 时,我直接打开地图“项目”而不是“后端”。

老实说,在 VSCode 中禁用 github 扩展不会解决您的问题。

**检查 package.json 文件,看看是什么“依赖项”导致了过载 **

例子 简直npm uninstall "parcel" 这将允许其中一些节点模块清理。

**如果您仍然想简单地添加节点模块&&其他大型包:**

  1. 创建 .gitignore.text 或使用新建文件按钮
  2. 键入 \{enter file name},它会自动将所有子文件添加到 .gitignore
  3. git commit -m "" 然后你就完成了

您可能从当前文件夹中 DELETED 个项目,而 git 没有注册删除。

最简单的解决方案是创建一个新文件夹并在其中启动 运行 VSCode。

您可以删除整个旧文件夹,也可以不理会它。由你决定。

我通过退出 VS Code 并使用命令行/终端添加、提交然后推送文件解决了我的类似问题。

只是添加我自己导致这个问题的愚蠢原因,以防它帮助另一个...

我从 GitHub 克隆了一个存储库,然后在同一文件夹中创建了一个 python 环境(“env”)以安装要求。当然是我的“env”文件夹中的所有新文件导致 VScode 抱怨太多更改。将“env”添加到项目的 .gitignore 解决了这个问题。

另一种解释,尚未列出,如果有两点是真的,可能会对您有所帮助

  1. 您在文件夹层次结构中有一个您不知道的 .git 文件夹
  2. 您在 VS 代码中处理的项目 没有 有自己的 .git 文件夹

第2点很容易验证

关于第1点,您需要在受影响的项目目录下在终端中写入以下内容:

git rev-parse --show-toplevel

此命令搜索文件目录树中更高层的 .git 文件夹,它将 return 第一个遇到的 git 存储库的位置。这意味着您要么会收到致命的未找到消息,要么会收到一条路径。

转到该目录并删除.git 文件夹(在检查日志以确保不会丢失信息后),然后在您的项目目录中创建一个.git 文件夹。

所以在我的情况下发生了什么,我打开 GitBash 并输入 git init 来初始化一个 repo 但是,实际发生的是我的 C 驱动器整个文件夹 被制作了repo,这就是为什么它显示检测到 10000 个更改以还原更改或丢弃,删除目录:

  1. 打开gitbash
  2. 在上面输入rm -rf .git然后回车
  3. 此命令将删除该存储库,不会删除任何文件,可以安全使用
  4. 创建要推送的新仓库

以下是可能原因的总结,来自之前对此问题的回答post:

  • 缺少 .git忽略文件

  • .git 中缺少条目,忽略不应提交到 git 的文件或文件夹。

  • 您只是进行了大量手动更改,或者您使用了外部工具来完成这些更改。 VsCode 需要一些时间来处理更改。

  • 您的 .git 文件夹在文件夹层次结构中的位置高于应有的位置。

  • 您只需打开要处理的项目,而不是父项目。

  • 尝试使用终端或 GUI 打开项目,而不是将项目文件夹拖到 VsCode。

  • 检查您是否在错误的位置执行了“git init”,尤其是在项目的父文件夹中。

  • 一个停产问题。输入:“git ls-files --eol”(Git 2.8+)。如果是,那么:

type: git config --global core.autocrlf false
re-clone your repository
check if the issue persists on VSCode

遇到了完全相同的问题。

  1. 在 vscode 中右键单击开源控制面板顶部的“源代码控制”,然后确保“源代码控制”已 selected。

  2. 打开源控制面板顶部旁边的下拉菜单“源控制存储库”,右键单击设置不正确的存储库,然后select“关闭存储库”。

Here is a visual of the answer

遇到了完全相同的问题。

  1. 在 vscode 中右键单击开源控制面板顶部的“源代码控制”,然后确保“源代码控制”已 selected。

  2. 打开源控制面板顶部旁边的下拉菜单“源控制存储库”,右键单击设置不正确的存储库,然后select“关闭存储库”。

Here is a visual of the answer

  1. 在 vs 代码中创建一个 .gitignore 文件
  2. 在该文件中写入 node_modules