每当我尝试将其插入仓库时,git都要求两者username & password
。
每次重新输入密码都没有问题,但是问题在于输入用户名。我https
用来克隆我的仓库。
因此,我该如何配置git,以便它不会username
在每一个上都要求git push
。
我是Linux的新手,但Windows中的IIRC git push
仅要求输入密码。
每当我尝试将其插入仓库时,git都要求两者username & password
。
每次重新输入密码都没有问题,但是问题在于输入用户名。我https
用来克隆我的仓库。
因此,我该如何配置git,以便它不会username
在每一个上都要求git push
。
我是Linux的新手,但Windows中的IIRC git push
仅要求输入密码。
Answers:
编辑(由主持人和评论建议使用@ dk14)
警告:如果credential.helper store
从答案中使用密码,您的密码将完全不加密(“原样”)存储在~/.git-credentials
。请查阅下面的评论部分或“链接的”部分的答案,尤其是如果您的雇主对安全问题的容忍度为零。
即使被接受,它也不能回答实际OP关于仅省略用户名(而不是密码)的问题。对于有确切问题的读者,@ grawity的答案可能会派上用场。
原始答案(@Alexander Zhu):
您可以使用以下命令存储凭据
$ git config credential.helper store
$ git push http://example.com/repo.git
Username: <type your username>
Password: <type your password>
我也建议你读
$ git help credentials
git config --unset credential.helper
您可以在 .git/config
本地存储库文件中。该文件包含一个名为“ remote”的部分,以及一个名为“ url”的条目。“ URL”条目应包含您正在谈论的存储库的https链接。
当您在主机名“ url”前添加用户名时,就git
不再需要用户名了。这是一个例子:
url = https://username@repository-url.com
git config credential.helper store
。
username for https://gitlab.com:
unable to access 'https://<me>@bitbucket.org:<x>/<y>.git/': Illegal port number
运行以下命令以启用凭据缓存:
$ git config credential.helper store
$ git push https://github.com/repo.git
Username for 'https://github.com': <USERNAME>
Password for 'https://USERNAME@github.com': <PASSWORD>
使用时还应指定缓存过期
git config --global credential.helper "cache --timeout 7200"
启用凭据缓存后,它将缓存7200秒(2小时)。
读取凭证文件
$ git help credentials
git config credntial.helper store
负责将明文凭证存储在〜/ .git-credentials文件中的危险命令吗?我认为(根据我的经验)... cache ...-命令就足够了:git config --clogal credential.helper 'cache --timeout 7200'
它创建了dir :,~/.git-credential-cache
其中包含了缓存文件,因此,只需执行此命令,而不要执行“ ... store”-命令
如GitHub上的本文所述,添加新的SSH密钥。
如果Git仍然要求您提供用户名和密码,请尝试更改https://github.com/
为git@github.com:
远程URL:
$ git config remote.origin.url
https://github.com/dir/repo.git
$ git config remote.origin.url "git@github.com:dir/repo.git"
git config remote.origin.url "ssh://git@yourRepoHost/yourRepoName.git"
我找到的最简单的方法是使用以下命令:
git config --global credential.https://github.com.username <your_username>
这可以在每个站点的基础上工作,并修改您的全局git配置。
要查看更改,请使用:
git config --global --edit
如果您使用的是https而不是ssh,则可以.git/config
按照user701648的说明编辑“ url” ,但如果需要,还可以添加密码:
url = https://username:password@repository-url.com
@
我的密码中包含密码怎么办?url = https://username:abc@123@repository-url.com
这给了我一个错误Could not resolve host: @123@git.com
username
当服务器重定向(例如从FOO到FOO.git)时,该部分似乎被忽略。
您可以通过在Git配置文件中放置以下内容来为给定站点上的所有存储库设置用户名。您需要将“ https://example.com ”和“ me”更改为实际的URL和实际的用户名。
[credential "https://example.com"]
username = me
(这直接来自“ git帮助凭据”)
确保您使用的是SSH而不是http。检查此 SO答案。
http
因为在我的大学ssh
中,系统管理员部门阻止了该工作。
最简单的方法是创建~/.netrc
具有以下内容的文件:
machine github.com
login YOUR_GITHUB_USERNAME
password YOUR_GITHUB_PASSWORD
(如此处所示:https : //gist.github.com/ahoward/2885020)
您甚至可以关闭该文件的权限,以便没人输入以下内容来读取密码:
chmod 600 ~/.netrc
如果您使用的是SSH版本,则密码不会有任何问题。只有一次生成SSH密钥时,才告诉git,此 PC可以与此 github帐户一起使用,并且永远不会再询问任何有关此PC的访问权限。
$ git config credential.helper存储
$ git push / push https://github.com/xxx.git
然后输入您的用户名和密码。
git push/push https://github.com/xxx.git
应该的git push https://github.com/xxx.git
适用于Windows和Linux请参阅下面提到的Github文档链接。
来自Github文档:文档链接
在Git中缓存GitHub密码
您需要Git 1.7.10或更高版本才能使用osxkeychain凭据帮助器。
检查您的Git版本:
git --version
找出osxkeychain helper已经安装:
git credential-osxkeychain
如果您收到以下响应,则说明它已经安装并可以在Mac上使用:
> Usage: git credential-osxkeychain <get|store|erase>
如果没有收到如上所示的响应,则可以运行以下命令来安装它:
git credential-osxkeychain
告诉git在git凭证中全局使用osxkeychain:
git config --global credential.helper osxkeychain
在将凭据保存到钥匙串之前,它将提示一次。