【问题标题】:Git has stopped working after installing VS 2022安装 VS 2022 后 Git 停止工作
【发布时间】:2022-09-28 22:17:44
【问题描述】:

安装新的 Visual Studio 2022 后,内置的 Git 支持突然停止工作。对于其中一个项目,我只看到一个子模块而不是主存储库。对于另一个项目,内置的 Git 面板根本没有出现,显示一些关于“SccProviderPackage”的神秘消息,说明“发生了一个或多个错误”作为原因......

花了一段时间遵循我能找到的关于类似问题的每一条建议,但没有运气。

    标签: git visual-studio-2022


    【解决方案1】:

    更新到17.1.5 后我遇到了同样的问题。 我检查了我的本地存储库和我的项目(工作树)的文件夹的所有权。 将所有权设置给我自己解决了这个问题。

    去做这个:

    1. 右键单击包含working tree.git 文件夹的文件夹。
    2. 点击Properties
    3. 转到标签Security
    4. 单击Advanced 按钮。
    5. 单击所有者的Change
    6. 选择您的user name
    7. 检查Replace owner on subcontainers and objects
    8. 单击Apply 和确定。

      VS 然后可以打开本地存储库。

    【讨论】:

    • 谢谢。这是工作。项目文件夹所有者必须是当前用户(组:管理员、所有等都不起作用)。也可以从 cmd 完成:takeown /f projectfolder /r /d y
    • 它就像一个魅力。以前我更新了 git 并将项目添加到安全目录中,但没有任何运气。唯一的解决方法是以管理员身份打开 VS。谢谢!
    • 这对我有用。 dev 文件夹所有者是一些奇怪的长字符串(猜测 - 它是在 Windows 从 10 升级到 11 期间设置的,虽然我不能确定)
    【解决方案2】:

    最后我决定放弃,转而尝试 GitHub 的 Git Extensions。在那里我终于看到了确切的错误消息(由于某种原因,它在“遥控器”列表中,而不是实际的遥控器列表中,但至少它在那里)。

    原因是 Git 没有考虑我的存储库“安全”的目录。所以解决方案是使用以下命令将您的存储库添加到安全目录:

    git config --global --add safe.directory /path/to/the/repo
    

    希望这可以帮助像我这样被这个问题困扰的人。

    【讨论】:

    • 此问题是 git 安全更新解决 CVE-2022-24765 的结果。这是我找到的一个来源:github.blog/2022-04-12-git-security-vulnerability-announced。如果您有兴趣了解更多信息,请随时进行其他研究。
    • @Code-Apprentice 正确,这就是我花了一整天试图弄清楚根本问题是什么后发现的,因为 MSVS 没有提供任何有关它的信息...
    【解决方案3】:

    在管理员模式下打开 VS 为我解决了这个问题。希望有帮助。

    【讨论】:

    • 也许您的.git 文件夹归您的admin 帐户所有,您需要将其所有者更改为您自己的帐户才能与您的用户一起使用VS。
    • 欢呼!这是为我做的!我在同一个目录结构下有许多不同的 repos,但只有这个项目有这个问题。有趣的是,一旦我将存储库克隆回本地计算机,这个问题就会消失(作为非管理员),但是在多次打开解决方案时,问题又回来了。
    • 这对我不起作用。所有者的压倒一切。我想不同之处在于我的 Windows 是从 10 升级到 11 并且 dev 文件夹的所有者是一些奇怪的长字符串(另一个猜测 - 它是在升级期间设置的,虽然我不能确定)
    【解决方案4】:

    我注意到包含 .git 的文件夹的所有者已被设置为丢失的帐户!于是我把主人换成了自己,问题就解决了。

    【讨论】:

    • 这对我有用,谢谢
    【解决方案5】:

    我明确地将包含工作目录和.git 文件夹的文件夹的所有者设置为我的用户,并对其中的所有内容使用继承。

    正如@Code-Apprentice 所指出的,这与Git v2.35.2 相关联

    更改 Git 在查找顶级 .git 目录时的行为,以在其目录遍历更改当前用户的所有权时停止。

    正如@mephisto123 意识到的那样,

    如果您希望对此行为进行例外处理,可以使用新的多值 safe.directory 配置

    【讨论】:

      【解决方案6】:

      这个问题中的所有其他建议对我都不起作用。

      信不信由你,我想我将其归结为将 VS2022 固定到任务栏并设置为以管理员身份启动(通过右键单击属性>高级)。一旦我禁用了管理员启动,Git Changes 窗口就会开始工作。我可以以管理员身份启动 VS2022,但需要通过右键单击以管理员身份运行来手动执行此操作。

      【讨论】:

        【解决方案7】:

        对我来说,它通过使用更新 git 版本来工作

        git update-git-for-windows

        并通过遵循此页面中的第一个答案@Aramn 来更新存储库的所有者。

        【讨论】:

          猜你喜欢
          • 2021-12-24
          • 2020-11-18
          • 2018-08-16
          • 1970-01-01
          • 1970-01-01
          • 2022-08-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多