How to save username and password in GIT?
我想在gitextension中使用自动推拉,而不需要每次都在提示中输入我的用户和密码。
那么,我如何将我的凭证保存在Git中呢?
跑
1 | git config credential.helper store |
然后
1 | git pull |
提供用户名和密码,稍后将记住这些详细信息。凭证存储在磁盘上的一个文件中,磁盘权限为"仅用户可读/可写",但仍为纯文本。
如果以后要更改密码
1 | git pull |
将失败,因为它失败了,它从
1 | git pull |
提供一个新密码,它将像以前一样工作。
您可以使用
1 | git config --global credential.helper store |
当运行这个命令时,当您第一次从远程存储库中拉或推时,您将被问及用户名和密码。
打开之后,对于与远程存储库的后续通信,您不必提供用户名和密码。
存储格式是以纯文本形式存储的
此外,您还可以为
1 | git config credential.helper cache <timout> |
这需要一个可选的
警告:如果使用此方法,您的Git帐户密码将以
如果您不希望这样做,请使用
打开凭据帮助器,以便Git将您的密码保存在内存中一段时间:
在终端中,输入以下内容:
1 2 | # Set git to use the credential memory cache git config --global credential.helper cache |
默认情况下,Git会将您的密码缓存15分钟。
要更改默认密码缓存超时,请输入以下内容:
1 2 | # Set the cache to timeout after 1 hour (setting is in seconds) git config --global credential.helper 'cache --timeout=3600' |
来自Github帮助
您可以这样设置用户名和密码:
1 2 3 | git config --global user.name"your username" git config --global user.password"your password" |
您可以编辑
1 | sudo nano ~/.gitconfig |
应该已经有了
1 2 3 |
您应该在这个文件的底部添加。
1 2 | [credential] helper = store |
我推荐这个选项的原因是因为它是全局的,并且如果在任何时候您需要删除这个选项,那么您就知道该去哪里并更改它。
仅在个人计算机中使用此选项。
然后拉克隆输入您的git密码,一般情况下,密码将以
1 | https://GITUSER:[email protected] |
其中domain.xxx可以是github.com bitback.org其他
参见文档
重新启动终端。对于全局设置,打开终端(从任意位置)运行如下:
1 2 | git config --global user.name"your username" git config --global user.password"your password" |
这样,您机器上的任何本地git repo都将使用该信息。
您可以通过执行以下操作为每个回购分别配置:
- 打开repo文件夹中的终端。
运行如下:
1
2git config user.name"your username"
git config user.password"your password"
它只影响该文件夹(因为您的配置是本地的)。
您可以使用Git凭据存储将密码未加密存储在磁盘上,仅受文件系统权限保护。
例子
1 2 3 4 5 6 7 8 | $ git config credential.helper store $ git push http://example.com/repo.git Username: <type your username> Password: <type your password> [several days later] $ git push http://example.com/repo.git [your credentials are used automatically] |
您可以检查存储在文件
有关更多信息,请访问Git凭据存储-用于在磁盘上存储凭据的帮助程序
如果使用ssh身份验证,您将比使用用户名/密码身份验证更安全。
如果您使用的是Mac,那么ssh客户机身份验证将集成到MacOS密钥链中。创建ssh密钥后,在终端中键入:
1 | ssh-add -K ~/.ssh/id_rsa |
这将把ssh私钥添加到macos密钥链中。Git客户端在连接到远程服务器时将使用ssh。只要您在服务器上注册了ssh公钥,就可以了。
在这种情况下,您需要使用以下命令行让Git记住您的GitHub密码和用户名:
1 | git config --global credential.helper wincred |
如果您使用的是使用ssh密钥的repo,那么您需要ssh密钥进行身份验证。
只需在URL中输入您的凭据,如下所示:
https://Username :Password @github.com/myRepoDir/myRepo.git
您可以这样存储:
git remote add myrepo https://Userna...
…使用它的示例:
git push myrepo master
现在要列出URL别名:
…删除其中一个的命令:
除了编辑
注意要始终使用单引号:
1 2 | git config --global user.name 'your username' git config --global user.password 'your password' |
如果使用双引号,用户名和密码可能会使用一些字符来破坏密码。