TortoiseGit保存用户身份验证/凭证

有没有办法保存GITHUB's user credentials与TortoiseGit?

每当我做推/拉操作时,它都会提示我下面的对话框。

我想把我的用户凭证信息保存在某个地方,就像我用TortoiseSVN做的那样。

enter image description here

307192 次浏览

如果你要投反对票的话

我是在TortoiseGit中包含git-credential的几个月前写的这篇文章。鉴于过去几年发现的大量安全漏洞以及我对网络安全的了解,我强烈建议您为连接的每个服务器使用唯一的(至少2048位RSA) SSH密钥。

下面的语法仍然可用,尽管今天有更好的工具可用,如git-credential,接受的答案告诉你如何使用。那就这样做吧。


尝试将远程URL更改为https://username@github.com/username/repo.git,其中username是你的github用户名,repo是你的存储库的名称。

如果你还想存储你的密码(不推荐),URL看起来像这样:https://username:password@github.com/username/repo.git

还有另一种方法来存储这篇github帮助文章中的密码:https://help.github.com/articles/set-up-git#password-caching

对于msysgit 1.8.0,从https://github.com/downloads/msysgit/git/git-credential-wincred.zip下载git-credential-wincred.exe并放入C:\Program Files\Git\libexec\git-core

对于msysgit 1.8.1及以上版本,exe是内置的。

在git配置中,添加以下设置。

< p >(凭证) Helper = wincred

对于TortoiseGit 1.8.1.2或更高版本,有一个GUI来打开/关闭凭据帮助器。

它支持git-credential-wincredgit-credential-winstore

TortoiseGit 1.8.16增加了对git-credential-manager (Git凭证管理器,git-credential-winstore的继承者)的支持

当你第一次同步时,你会被要求输入用户名和密码,输入后它们会被保存到Windows凭据存储中。下次同步时,它不会询问用户或密码。

使用方法:右键单击→TortoiseGit →设置→Git →证书。选择凭据帮助器:wincred -仅此存储库/ wincred -当前Windows用户

enter image description here

保存用户名和密码与TortoiseGit

在TortoiseGit中保存登录信息非常简单。省去了每次拉或推时输入用户名和密码的麻烦。

  1. 创建一个名为_netrc的文件,包含以下内容:

    < p >机器github.com < br > 登录yourlogin < br > 密码yourpassword < br > < / p > < /李>
  2. 将文件复制到C:\Users\(或其他位置;这恰好是我放的地方)

  3. 进入命令提示符,输入setx home C:\Users\

注意:如果你使用的是Windows 7之前的版本,setx命令可能不适合你。请使用set,并通过“我的电脑”下的“高级设置”将家庭环境变量添加到Windows。

< p >信用: http://www.munsplace.com/blog/2012/07/27/saving-username-and-password-with-tortoisegit/ < / p >

使用git版本1.8.3.msysgit,上述答案都不适用。0和TortoiseGit 1.8.4.0。

在我的特定情况下,我必须通过HTTPS连接到远程git repo,使用完整的电子邮件地址作为用户名。 在这种情况下,wincred似乎没有工作

使用电子邮件地址作为回购URL的一部分也不起作用,因为软件似乎被URL中双重出现的“@”字符所迷惑。

我确实设法用winstore克服了这个问题。以下是我所做的:

这将把git-credential-winstore.exe复制到本地目录,并向全局.gitconfig添加两行。你可以通过检查全局.gitconfig来验证这一点。这是最简单的通过鼠标右键在文件夹,“TortoiseGit > Settings > Git > Edit global .gitconfig”。该文件应该包含如下两行:

    [credential]
helper = !'C:\\Users\\yourlogin\\AppData\\Roaming\\GitCredStore\\git-credential-winstore.exe'
  • 在“网络”或“凭据”下不需要其他TortoiseGit设置。特别是:由于这些配置行,“Credential”下的“Credential helper”下拉菜单将变成空白,因为TortoiseGit不识别新的帮助。不要将下拉菜单设置为另一个值,否则全局的.gitconfig将被一个不正确的值覆盖!(*)

你现在已经准备好了:

  • 尝试从远程存储库中提取。你会注意到一个身份验证弹出窗口询问你的用户名和密码,该弹出窗口在视觉上应该与默认的TortoiseGit弹出窗口不同。这是一个好迹象,意味着winstore工作。输入正确的身份验证,拉取就会成功。
  • 再次尝试相同的拉,您的用户名和密码应该不再被询问。
< p >完成了! 享受与远程回购的交互,而winstore负责身份验证

(*)或者,如果你不喜欢TortoiseGit凭证设置助手下拉菜单中的空白选择,你可以使用“高级”选项:

  • 点击“TortoiseGit > Settings > Credential”
  • 选择凭据帮助器“高级”
  • 点击“助手”下的“G”(全局)
  • 输入Helper路径,如下所示。注意:一个常规的Windows路径表示法(例如:"C:\Users…")在这里不起作用,你必须复制在全局.gitconf中不带"helper ="位创建的安装winstore的确切行。

    !'C:\\Users\\yourlogin\\AppData\\Roaming\\GitCredStore\\git-credential-winstore.exe'
    
  • Click the "Add New/Save" button

[打开git设置(TortoiseGit→设置→git)][1]

[在GIt中:点击编辑全局的。gitconfig][2]

配置用户名和密码

去项目回购, 右键点击> 'Git Bash Here'

在git bash windows类型中

cd ~
pwd

得到这样的结果

/c/Users/<windows_username>

现在将您的公钥和私钥复制到此路径

C:\Users\<windows_username>\.ssh

我得到了下面的文件

id_rsa
id_rsa.pub
known_hosts

在这里

现在,当它需要使用凭据时,它使用这些文件并在需要时提示输入密码。

如果你是windows 10 + TortoiseGit 2.7用户:

  1. 第一次登录时,只需按照提示输入您的凭据并保存密码。
  2. 如果你需要更新你的凭证,不要在TortoiseGit设置上浪费时间。相反,windows搜索>凭据管理> windows凭据>找到你的git条目>编辑。
我将Git for Windows升级到最新的(2.30.0)64位,现在工作正常。 从url https://git-scm.com/download/win获取最新的,并运行下面的命令来验证。 $ git——版本 $ git version 2.30.0.windows.1

当更新到Git for Windows 2.35.1.windows时。2从一个旧的主要版本,你可能想做以下事情:

  1. 启动Git CMD

  2. < p >运行:git credential-manager-core configure

  3. 这应该给出如下响应:

    配置组件“Git凭据管理器”…

    正在配置组件“Azure Repos提供商”…

现在,当启动下一个Git操作时,Git将只要求您选择一个帐户一次,存储它并在下一个操作中重用它。