我知道如何为HTTPS请求提供用户名和密码,就像这样:

git clone https://username:password@remote

但是我想知道如何像这样为遥控器提供用户名和密码:

git clone git@remote.git

我是这样尝试的:

git clone username:password@git@remote.git
git clone git@username:password@remote.git
git clone git@remote.git@username:password

但它们并没有起作用。


当前回答

我更喜欢使用GIT_ASKPASS环境为git提供HTTPS凭据。 如果将登录名和密码导出为USR和PSW变量,则以下脚本不会在历史记录中留下密码的痕迹,并且磁盘+不容易受到密码中的特殊字符的影响:

GIT_ASKPASS=$(mktemp) && chmod a+rx $GIT_ASKPASS && export GIT_ASKPASS

cat > $GIT_ASKPASS <<'EOF'
#!/bin/sh
exec echo "$PSW"
EOF

git clone https://${USR}@example.com/repo.git

注意:此处doc标记“EOF”周围的单引号意味着临时脚本保存$PSW字符,而不是PSW变量的密码/扩展值

其他回答

如果你有凭据存储在任何类型的凭据帮助中,但没有将凭据帮助配置为全局激活,你可以像这样克隆:

git clone https://git.example.com/ns/repo.git --config=credential.helper=store

这将在克隆之前在本地设置凭据帮助配置(仅针对新的回购)。

在Windows上,当git克隆时,以下步骤应该重新触发GitHub登录窗口:

在开始菜单中搜索“凭据管理器” 选择“Windows凭证” 删除所有与Git或GitHub相关的凭证

2021年8月13日后必须使用

Git克隆 https://username:token@github.com/username/repository.git

生成令牌:

设置>>开发人员设置>>个人访问令牌>>生成新的令牌

去推

克隆成功后,下次当你做git推送时,你将不必再次提到用户名。你可以在记事本中打开.git/config文件来确认

[remote "origin"]
    url = https://username:tokenxxxxxxxxxx@github.com/username/repo.git

要克隆存储库,首先应该生成一个访问令牌(您不能再使用登录密码),然后使用这个生成的令牌克隆存储库。

生成访问令牌:

github: 设置>开发人员设置>个人访问令牌>生成新的令牌

bitbucket都: 个人设置>应用密码>创建应用密码

克隆存储库:

github:

$ git clone https://YOUR-USERNAME:GENERATED-TOKEN@github.com/YOUR-USERNAME/YOUR-REPOSITORY

bitbucket都:

git clone https://YOUR-USERNAME@bitbucket.org/YOUR-REPOSITORY

它将提示您输入已生成的令牌。

我用以下方法解决了这个问题: