当在终端中使用 Git 通过 HTTPS 访问私有代码仓库时,Git 会提示输入用户名和密码。然后,Git 将这些凭据提交至服务器,如果服务器接受这些凭据并允许访问代码仓库,Git 则会继续执行命令。
Unity Package Manager 使用 Git URL 获取包时,没有终端供用户输入凭据。因此,当服务器向 Git 请求凭据时,Git 不会发出提示,而是向 Unity Package Manager 报错。要解决此问题,必须为 Git 配置一个 Git 凭据助手,并且该助手必须已经为该代码仓库加载了所需的凭据。如果凭据有效,Git 可以成功执行 Unity Package Manager 发出的命令。
注意:使用 SSH 协议(包括 SCP 样式的语法)的 Git URL 时,Git 凭据助手无效。
虽然 Git 支持多个凭据助手来存储凭据,但 Git 凭据管理器 (Git Credential Manager (GCM)) 仍是推荐的凭据助手。GCM 灵活、易于安装且受到积极支持。它基于 .NET 构建,这意味着它可以在支持 .NET 的 Windows、macOS 和 Linux 发行版上运行。
默认情况下,GCM 使用 Windows Credential Manager(在 Windows 上)和 macOS Keychain(在 macOS 上)作为配置的凭据存储。GCM 没有为 Linux 配置默认存储库。请参阅 GCM 凭据存储文档以了解有关 GCM 支持的不同凭据存储配置的更多信息。
在使用 HTTPS URL 从私有 Git 代码仓库获取包之前,请确保安装了 GCM。
Git for Windows 安装程序包含一个自动安装和配置 GCM 的步骤。在以下情况下,您也可以单独安装 GCM:
请参阅 GCM 安装说明以了解有关安装 GCM 的更多信息。
按照以下步骤访问使用 HTTPS Git URL 的私有代码仓库中的包:
通过在终端中运行以下命令,配置 Git 使用 GCM:
git config --global credential.helper manager
使用终端一次性访问代码仓库。例如,运行以下命令:
git ls-remote --heads https://<url-to-repository> HEAD
当 Git 提示您时,输入凭据。如果您的用户帐户可以访问远程 Git 服务器,并且服务器接受您的凭据,则 Git 凭据助手将会安全地存储您的凭据。
使用 Unity Package Manager。必要时,它将使用存储的凭据从有访问权限的基于 HTTPS 的代码仓库获取包。