我想在GitExtensions、Sourcetree或任何其他GitGUI中自动使用推拉,每次都不需要在提示中输入用户名和密码。
那么我如何在Git中保存我的凭据?
我想在GitExtensions、Sourcetree或任何其他GitGUI中自动使用推拉,每次都不需要在提示中输入用户名和密码。
那么我如何在Git中保存我的凭据?
当前回答
我认为缓存凭据比永久存储更安全:
git config --global credential.helper 'cache --timeout=10800'
现在,您可以输入用户名和密码(git pull或…),并在接下来的三个小时内继续使用git。
它很好,很安全。
超时的单位是秒(在本例中为三小时)。
其他回答
您可以使用git凭据存储将未加密的密码存储在磁盘上,仅受文件系统权限的保护。
实例
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凭据中的凭据。
有关更多信息,请访问git credential store-Helper将凭据存储在磁盘上。
根据rofrol在Linux Ubuntu上的评论,根据这个答案,下面是如何在Ubuntu上实现的:
sudo apt-get install libsecret-1-0 libsecret-1-dev
cd /usr/share/doc/git/contrib/credential/libsecret
sudo make
git config --global credential.helper /usr/share/doc/git/contrib/credential/libsecret/git-credential-libsecret
其他一些发行版提供二进制文件,因此您不必构建它。
在OSX中,它通常“内置”了一个默认模块“osxkeychain”,因此您可以免费获得它。默认情况下,OS X内置和自制版本都有它。
注意:此方法以明文形式将凭据保存在电脑磁盘上。计算机上的每个人都可以访问它,例如恶意NPM模块。
Run
git config --global credential.helper store
then
git pull
提供用户名和密码,这些详细信息稍后将被记住。凭证存储在磁盘上的文件中,磁盘权限为“仅用户可读/可写”,但仍为明文。
如果以后要更改密码
git pull
将失败,因为密码不正确,git然后从~/.git凭据文件中删除有问题的用户+密码,因此现在重新运行
git pull
以提供一个新密码,以便与之前一样工作。
您可以使用gitconfig在git中启用凭据存储。
git config --global credential.helper store
运行此命令时,当您第一次从远程存储库中拉入或推送时,会询问您的用户名和密码。
之后,对于与远程存储库的后续通信,您不必提供用户名和密码。
存储格式为.git凭据文件,以明文形式存储。
此外,您还可以为git-configcredential.helper使用其他助手,即内存缓存:
git config credential.helper 'cache --timeout=<timeout>'
它采用可选的超时参数,确定凭证将在内存中保留多长时间。使用帮助器,凭据将永远不会接触磁盘,并且在指定的超时后将被擦除。默认值为900秒(15分钟)。
警告:如果使用此方法,您的Git帐户密码将以明文格式保存在global.gitconfig文件中,例如在Linux中,它将是/home/[用户名]/.gitconfig。
如果您不希望这样做,请为您的帐户使用ssh密钥。
GitHub的建议现在已经改变,最好的方法也是最简单的。此处显示详细信息
安装Github官方cli。例如,对于mac:brew install gh。在终端中键入gh-auth-login,然后按照提示进行操作。