如何使用 HTTPS URL 请求 GIT_REPOSITORY 的密码
How to request a password for GIT_REPOSITORY using HTTPS URL
git命令理解的URL可以是HTTPS或SSH格式。
在 CMake 中,对指定的 GIT_REPOSITORY
使用 ExternalProject_Add
可以使用 git 命令理解的任何 URL。
必须提供使用 HTTPS 的用户凭据才能“克隆”私有存储库。对于ExternalProject_Add
,当使用DOWNLOAD_COMMAND
时,这种机制以HTTP_USERNAME
和HTTP_PASSWORD
的形式存在。
对于GIT_REPOSITORY
好像没有这样的方法。使用时:
include( ExternalProject )
ExternalProject_Add(test
GIT_REPOSITORY git@github.com:myuser/myprivaterepo.git
GIT_REMOTE_NAME origin
)
在私有存储库上出现以下错误:
fatal: could not read Username for 'https://github.com': No such device or address
问题
当使用 HTTPS 连接到 ExternalProject_Add
上的私有存储库时,如何让 CMake 请求 GIT_REPOSITORY
的密码?
虽然 CMake 没有提供用于提供用户凭据的显式 Git 选项(如 HTTP_USERNAME
和 HTTP_PASSWORD
),但您可以操纵 Git URL 以便系统提示您输入登录密码,如前所述 here。只需在 URL:
中用 @
指定您的 username
ExternalProject_Add(test
GIT_REPOSITORY https://username@github.com/myuser/myprivaterepo.git
GIT_REMOTE_NAME origin
USES_TERMINAL_DOWNLOAD ON
)
请注意,您可能还需要启用 USES_TERMINAL_DOWNLOAD
选项以允许终端输入来输入您的凭据。您也可以直接在 URL 中提供您的密码,但最佳做法不推荐这样做:
ExternalProject_Add(test
GIT_REPOSITORY https://username:password@github.com/myuser/myprivaterepo.git
GIT_REMOTE_NAME origin
USES_TERMINAL_DOWNLOAD ON
)
作为奖励,这也适用于 Bitbucket 帐户。
git命令理解的URL可以是HTTPS或SSH格式。
在 CMake 中,对指定的 GIT_REPOSITORY
使用 ExternalProject_Add
可以使用 git 命令理解的任何 URL。
必须提供使用 HTTPS 的用户凭据才能“克隆”私有存储库。对于ExternalProject_Add
,当使用DOWNLOAD_COMMAND
时,这种机制以HTTP_USERNAME
和HTTP_PASSWORD
的形式存在。
对于GIT_REPOSITORY
好像没有这样的方法。使用时:
include( ExternalProject )
ExternalProject_Add(test
GIT_REPOSITORY git@github.com:myuser/myprivaterepo.git
GIT_REMOTE_NAME origin
)
在私有存储库上出现以下错误:
fatal: could not read Username for 'https://github.com': No such device or address
问题
当使用 HTTPS 连接到 ExternalProject_Add
上的私有存储库时,如何让 CMake 请求 GIT_REPOSITORY
的密码?
虽然 CMake 没有提供用于提供用户凭据的显式 Git 选项(如 HTTP_USERNAME
和 HTTP_PASSWORD
),但您可以操纵 Git URL 以便系统提示您输入登录密码,如前所述 here。只需在 URL:
@
指定您的 username
ExternalProject_Add(test
GIT_REPOSITORY https://username@github.com/myuser/myprivaterepo.git
GIT_REMOTE_NAME origin
USES_TERMINAL_DOWNLOAD ON
)
请注意,您可能还需要启用 USES_TERMINAL_DOWNLOAD
选项以允许终端输入来输入您的凭据。您也可以直接在 URL 中提供您的密码,但最佳做法不推荐这样做:
ExternalProject_Add(test
GIT_REPOSITORY https://username:password@github.com/myuser/myprivaterepo.git
GIT_REMOTE_NAME origin
USES_TERMINAL_DOWNLOAD ON
)
作为奖励,这也适用于 Bitbucket 帐户。