【发布时间】:2022-09-28 22:17:44
【问题描述】:
安装新的 Visual Studio 2022 后,内置的 Git 支持突然停止工作。对于其中一个项目,我只看到一个子模块而不是主存储库。对于另一个项目,内置的 Git 面板根本没有出现,显示一些关于“SccProviderPackage”的神秘消息,说明“发生了一个或多个错误”作为原因......
花了一段时间遵循我能找到的关于类似问题的每一条建议,但没有运气。
安装新的 Visual Studio 2022 后,内置的 Git 支持突然停止工作。对于其中一个项目,我只看到一个子模块而不是主存储库。对于另一个项目,内置的 Git 面板根本没有出现,显示一些关于“SccProviderPackage”的神秘消息,说明“发生了一个或多个错误”作为原因......
花了一段时间遵循我能找到的关于类似问题的每一条建议,但没有运气。
更新到17.1.5 后我遇到了同样的问题。
我检查了我的本地存储库和我的项目(工作树)的文件夹的所有权。
将所有权设置给我自己解决了这个问题。
去做这个:
working tree 和.git 文件夹的文件夹。Properties
Security。Advanced 按钮。Change。user name。Replace owner on subcontainers and objects。Apply 和确定。
VS 然后可以打开本地存储库。
【讨论】:
takeown /f projectfolder /r /d y
最后我决定放弃,转而尝试 GitHub 的 Git Extensions。在那里我终于看到了确切的错误消息(由于某种原因,它在“遥控器”列表中,而不是实际的遥控器列表中,但至少它在那里)。
原因是 Git 没有考虑我的存储库“安全”的目录。所以解决方案是使用以下命令将您的存储库添加到安全目录:
git config --global --add safe.directory /path/to/the/repo
希望这可以帮助像我这样被这个问题困扰的人。
【讨论】:
在管理员模式下打开 VS 为我解决了这个问题。希望有帮助。
【讨论】:
.git 文件夹归您的admin 帐户所有,您需要将其所有者更改为您自己的帐户才能与您的用户一起使用VS。
我注意到包含 .git 的文件夹的所有者已被设置为丢失的帐户!于是我把主人换成了自己,问题就解决了。
【讨论】:
我明确地将包含工作目录和.git 文件夹的文件夹的所有者设置为我的用户,并对其中的所有内容使用继承。
正如@Code-Apprentice 所指出的,这与Git v2.35.2 相关联
更改 Git 在查找顶级 .git 目录时的行为,以在其目录遍历更改当前用户的所有权时停止。
正如@mephisto123 意识到的那样,
如果您希望对此行为进行例外处理,可以使用新的多值 safe.directory 配置
【讨论】:
这个问题中的所有其他建议对我都不起作用。
信不信由你,我想我将其归结为将 VS2022 固定到任务栏并设置为以管理员身份启动(通过右键单击属性>高级)。一旦我禁用了管理员启动,Git Changes 窗口就会开始工作。我可以以管理员身份启动 VS2022,但需要通过右键单击以管理员身份运行来手动执行此操作。
【讨论】:
对我来说,它通过使用更新 git 版本来工作
git update-git-for-windows
并通过遵循此页面中的第一个答案@Aramn 来更新存储库的所有者。
【讨论】: