有没有一种方法可以缓存GitHub凭证来推送提交?


1867

我最近切换到将存储库同步到GitHub上的https://(由于防火墙问题),并且每次都要求输入密码。

有没有一种方法可以缓存凭据,而不是每次都进行身份验证git push



2
现在,您可以使用凭据助手来加密_netrc包含凭据的文件。请参阅下面的答案。我发现git-credential-winstore.exe(内存缓存)在Windows上有一些错误,这是比较安全的。
VonC


git-credential-winstore最适合Windows。什么是越野车?设置ssh是首选方法,尽管我已经做过几次了,但它更容易出错,当您必须连接到多个主机时,有时只是无法正常工作。
布朗·戴维斯

2
通过“ SSH证书”,我假设您的意思是“ SSH私钥”。
Michael Mior

Answers:


2369

使用Git 1.7.9及更高版本

自Git 1.7.9(于2012年1月下旬发布)以来,Git中提供了一种巧妙的机制,可避免始终为HTTP / HTTPS键入密码(称为凭据帮助程序)。(感谢dazonic在下面的评论中指出此新功能。)

使用Git 1.7.9或更高版本,您可以仅使用以下凭据帮助程序之一:

git config --global credential.helper cache

...告诉Git在默认情况下将您的密码在内存中缓存15分钟(默认)。您可以使用以下方法设置更长的超时时间:

git config --global credential.helper "cache --timeout=3600"

(在LinuxGitHub帮助页面中建议了该示例。)如果需要,您也可以永久存储凭据,请参见下面的其他答案。

GitHub的帮助还建议,如果您使用的是Mac OS X,并且使用Homebrew安装Git,则可以将本机Mac OS X密钥库与以下命令一起使用:

git config --global credential.helper osxkeychain

对于Windows,在msysgit中有一个名为Git Credential Manager的Windowswincred帮助程序

git config --global credential.helper wincred # obsolete

使用适用于Windows 2.7.3+的Git(2016年3月):

git config --global credential.helper manager

对于Linux,可以使用gnome-keyring(或其他密钥环实现,例如KWallet)。

使用1.7.9之前的Git版本

在1.7.9之前的Git版本中,此更安全的选项不可用,您需要以以下方式更改origin远程用户使用的URL 来包含密码:

https://you:password@github.com/you/example.git

...换句话说,:password在用户名之后和之前@

您可以使用以下方法为您的origin遥控器设置新的URL :

git config remote.origin.url https://you:password@github.com/you/example.git

确保使用https,并且应注意,如果这样做,则GitHub密码将以纯文本格式存储在.git目录中,这显然是不希望的。

使用任何Git版本(从0.99版本开始)

一种替代方法是将用户名和密码放入~/.netrc文件中,尽管与将密码保留在远程URL中一样,这意味着您的密码将以纯文本格式存储在磁盘上,因此安全性较低,因此不建议这样做。但是,如果您要采用这种方法,请将以下行添加到您的~/.netrc

machine <hostname> login <username> password <password>

...更换<hostname>与服务器的主机名,<username><password>与您的用户名和密码。还请记住在该文件上设置限制性文件系统权限:

chmod 600 ~/.netrc

请注意,在Windows上,该文件应名为_netrc,并且您可能需要定义%HOME%环境变量-有关更多详细信息,请参见:


72
不要以纯文本形式存储密码。从Git 1.7.9开始,您可以使用凭证助手。git config --global credential.helper osxkeychain有关其他OS,请参见help.github.com/articles/set-up-git
dazonic 2012年

6
FWIW,osx钥匙串东西是基本GIT源代码的一部分,它不是Brew或MacPorts的专有组件,也不是本月的任何形式。而且您甚至不需要从头开始构建git-只需cd contrib / credential / osxkeychain /并运行make。
synthesizerpatel

2
通过两因素身份验证,您必须使用github所谓的Person Access Token。实际上,您应该始终使用一个,因为与密码不同,您可以控制密码的访问权限。只需替换URL中的密码即可,最终得到https://username:PERSONAL_ACCESS_TOKEN@github.com/username/project.git。它使存储在磁盘上的纯文本密码几乎可以安全使用。
罗素·斯图尔特

12
git config --global credential.helper cache在Windows上不起作用:stackoverflow.com/questions/11693074/…在Windows上使用gitcredentialstore很高兴
Sebastian

8
有什么办法将此超时设置为无穷大?
sudo 2015年

720

您还可以使用以下方法让Git永久存储您的凭据:

git config credential.helper store

注意:虽然这很方便,但是Git会将您的凭据以明文形式存储在项目目录(请参见下面的“主”目录)下的本地文件(.git-credentials)中。如果您不喜欢这样做,请删除该文件并切换到使用缓存选项。

如果您希望Git在每次需要连接到远程存储库时继续要求您提供凭据,则可以运行以下命令:

git config --unset credential.helper

要将密码存储.git-credentials%HOME%目录中而不是项目目录中:使用--global标志

git config --global credential.helper store

7
在Windows上,你可以下载一个辅助实用程序可配置的东西存放在Windows Creditial Store中的GIT密码的加密版本,请参阅confluence.atlassian.com/display/STASH/...
期货升水

76
我发现我必须指定--global,否则它将尝试将设置存储在当前存储库中:git config --global credential.helper store
Brian Gordon

6
为什么要进行缓存而不是永久存储?共享计算机或其他东西?
Michael J. Calkins

2
@BrianGordon我在Windows上使用GIT 1.9.5,并且--global标记是多余的。即使没有此标志,也将在%USER_HOME%目录中创建凭据文件。
jFrenetic

2
如果不是以纯文本格式存储,它受什么保护?你的密码?当您连接到git时,不是必须要询问您的管理员密码吗?不必输入密码来获取另一个密码有点奇怪吗?
Cruncher

101

TLDR;将加密的netrc文件与Git 1.8.3+一起使用

在Windows上使用~/.netrc(Unix)或%HOME%/_netrc(请注意_)可以为Git存储库HTTPS URL保存密码。

但是:该文件将以纯文本格式存储您的密码。

解决方案:加密与文件GPG(GNU隐私卫士),使Git的解密每次需要输入密码(时间push/ pull/ fetch/ clone操作)。


注意:使用Git 2.18(2018年第二季度),您现在可以自定义用于解密加密.netrc文件的GPG 。

参见Luis Marsano的commit 786ef50f07ee(2018年5月12日)(``)
(通过合并JUNIOÇ滨野- gitster-提交017b7c5,2018年5月30日)

git-credential-netrc:接受gpg选项

git-credential-netrcgpg无论使用gpg.program选项如何,都使用' ' 进行了硬编码以进行解密。
这在Debian这样的发行版中存在问题,这些发行版将现代GnuPG称为“ gpg2'”


Windows的分步说明

使用Windows:

(Git gpg.exe的发行版本为,但是使用完整的GPG安装包括一个gpg-agent.exe,可以记住与GPG密钥关联的密码。)

  • 安装gpg4Win Lite,最小的gnupg命令行界面(采用最新的gpg4win-vanilla-2.X.Y-betaZZ.exe),并使用GPG安装目录完成PATH:

    set PATH=%PATH%:C:\path\to\gpg
    copy C:\path\to\gpg\gpg2.exe C:\path\to\gpg\gpg.exe

(请注意' copy'命令:Git将需要一个Bash脚本来执行命令' gpg'。由于gpg4win-vanilla-2自带gpg2.exe,您需要复制它。)

  • 创建或导入GPG密钥,并信任它:

    gpgp --import aKey
    # or
    gpg --gen-key

(请确保在该密钥上输入密码。)

  • 相信那个钥匙

  • 在以下位置的目录中安装凭据帮助程序脚本%PATH%

    cd c:\a\fodler\in\your\path
    curl -o c:\prgs\bin\git-credential-netrc https://raw.githubusercontent.com/git/git/master/contrib/credential/netrc/git-credential-netrc.perl

(请注意:该脚本在Git 2.25.x / 2.26中已重命名,请参见下文)

(是的,这是一个Bash脚本,但是它将在Windows上运行,因为它会被Git调用。)

  • 用明文制作一个_netrc文件

    machine a_server.corp.com
    login a_login
    password a_password
    protocol https
    
    machine a_server2.corp.com
    login a_login2
    password a_password2
    protocol https

(不要忘记“ protocol”部分:“ http”或“ https”,这取决于您将使用的URL。)

  • 加密该文件:

    gpg -e -r a_recipient _netrc

(您现在可以删除_netrc文件,仅保留_netrc.gpg加密的文件。)

  • 使用该加密文件:

    git config --local credential.helper "netrc -f C:/path/to/_netrc.gpg -v"

(请注意' /':C:\path\to...根本不起作用。)(您可以首先使用它-v -d来查看发生了什么。)

从现在开始,任何使用HTTP(S)URL且需要进行身份验证的Git命令都将解密该_netrc.gpg文件,并使用与您正在联系的服务器关联的登录名/密码。GPG第一次会要求您提供GPG密钥的密码,以解密文件。其他时间,第一个GPG调用会自动启动的gpg-agent 将为您提供该密码。

这样,您可以将多个 URL /登录名/密码存储在一个文件中,并将其加密存储在磁盘上。
我发现它比“缓存帮助器”更方便,在“缓存帮助器”中,您需要记住并为每个远程服务键入(每个会话一次)不同的密码,以便将所述密码缓存在内存中。


在Git 2.26(2020年第一季度)中,用于使用的示例凭证帮助程序.netrc已更新,可以立即使用。请参阅补丁/讨论

参见Denton Liu(提交6579d931c78c78(2019年12月20日(由Junio C Hamano合并--commit 1fd27f8中,2019年12月25日)Denton-L
gitster

contrib/credential/netrc:使可PERL_PATH配置

签字人:刘丹顿

Perl解释器的shebang路径git-credential-netrc是硬编码的。
但是,某些用户可能会将其放置在其他位置,因此必须手动编辑脚本。

.perl在脚本中添加前缀以将其表示为模板,并忽略生成的版本。像其他Perl脚本一样,
增强从中Makefile生成的。git-credential-netrcgit-credential-netrc.perl

Makefile食谱从那里被偷偷偷走了contrib/mw-to-git/Makefile

和:

在2.26(Q1 2020)中,使用.netrc的示例凭据帮助程序已更新,可以立即使用。

参见Denton Liu(提交6579d931c78c78(2019年12月20日(由Junio C Hamano合并--commit 1fd27f8中,2019年12月25日)Denton-L
gitster

contrib/credential/netrc:在回购之外工作

签字人:刘丹顿

目前,git-credential-netrc无法在git储存库之外使用。失败并显示以下错误:

fatal: Not a git repository: . at /usr/share/perl5/Git.pm line 214.

但是,没有真正的理由为什么需要将其放入存储库中。凭据助手也应该能够在存储库外部正常工作。

调用的非自身版本,config()以便git-credential-netrc不再需要在存储库中运行。

Jeff King(peff添加:

我假设您使用的是gpg加密的文件netrc(如果没有,则可能只应使用credential-store)。
对于“只读”密码访问,我发现这样pass与config 结合使用会更好一些:

[credential "https://github.com"]
  username = peff
  helper = "!f() { test $1 = get && echo password=`pass github/oauth`; }; f"

1
尝试在Linux上做同样的事情.. git command。see'git --help'“
2013年

4
@sunny的作用curl -o c:\prgs\bin\git-credential-netrc https://raw.github.com/git/git/master/contrib/credential/netrc/git-credential-netrc是:您需要复制git-credential-netrc路径($PATH)中的任何位置,以便git能够调用' credential-netrc'。
VonC

好了,_netrc没有一个对我的工作Windows 7电脑,但.netrc工作了YouTube的-DL--netrc传递给它的参数。
Iulian Onofrei 2015年

@VonC当前的URL似乎是https://raw.githubusercontent.com/git/git/master/contrib/credential/netrc/git-credential-netrc.perl(在7年后才发送)
Gwyneth Llewelyn

1
@GwynethLlewelyn谢谢。我已经相应地编辑了答案。如果您看到其他任何过时的信息,请不要犹豫自己编辑它。
VonC

43

有一种简单的老式方法将用户凭据存储在HTTPS URL中:

https://user:password@github.com/...

您可以使用 git remote set-url <remote-repo> <URL>

这种方法的明显缺点是必须将密码存储为纯文本格式。您仍然可以只输入用户名(https://user@github.com/...),这至少可以节省一半的麻烦。

您可能更喜欢切换到SSH或使用GitHub客户端软件。


2
用户名/密码可能需要编码,请参见stackoverflow.com/a/34611311/3906760
MrTux

43

使用凭证存储。

对于OS XLinux上的Git 2.11+ ,请使用Git内置的凭据存储

git config --global credential.helper libsecret

对于Windows上的msysgit 1.7.9+ :

git config --global credential.helper wincred

对于OS X上的Git 1.7.9+,请使用:

git config --global credential.helper osxkeychain

2
我确定这是要走的路,但是我git: 'credential-gnome-keyring' is not a git command. See 'git --help'.
很难过

1
谢谢,但是由于某种原因我遇到了同样的错误。难道我做错了什么?我键入命令,没有任何反应。推送后,系统会要求我输入成功插入的凭据,但出现错误,因为执行此操作后它不是git命令。
codepleb

2
在libsecret在Linux上运行之前,您需要执行以下步骤:stackoverflow.com/a/40312117/775800
Lavamantis

1
另一件事-如果您在Github上启用了2FA,则您的密码将无效。但是您可以在Github的“设置”页面上创建个人访问令牌,该令牌将用作您的密码。github.com/github/hub/issues/822
Lavamantis

3
安全问题: Windows凭据管理器使登录到Windows帐户的任何人都可以访问您的纯文本密码。他们所需要做的就是向凭证管理器发送一个请求,例如printf "protocol=https\nhost=git.mycompany.com\n" | git credential-manager get此处有更多详细信息)。您应该始终对此使用个人访问令牌,并且当然要在GitHub帐户上使用2FA。
cjs


23

对我来说不是立即显而易见的,我需要先下载该助手!我在Atlassian的Git存储库永久身份验证中找到了credential.helper下载。

引用:

如果要在OS X上将Git与凭据缓存一起使用,请按照以下步骤操作:

下载二进制git-credential-osxkeychain。

运行以下命令以确保二进制文件可执行:

chmod a+x git-credential-osxkeychain

将其放在目录中/usr/local/bin

运行以下命令:

git config --global credential.helper osxkeychain

23

只需将登录凭据作为URL的一部分:

git remote rm origin
git remote add origin https://username:mypassword@github.com/path/to/repo.git

注意:我不建议您使用此方法,但是如果您急于执行其他操作,则可以使用此方法。


12
它可以正常工作,您必须在电子邮件ID中使用@ 40逸出@
Tarun Gupta

如果我们在电子邮件ID中输入“ +”怎么办?我尝试过相同的逃生操作,但推送内容为“未找到存储库”
killjoy

4
使用%2B代替+
塔伦·古普塔

以明文形式存储密码且易于访问的密码可能不是最佳解决方案。
减少活动

20

在GNU / Linux设置上,〜/ .netrc也可以很好地工作:

$ cat ~/.netrc
machine github.com login lot105 password howsyafather

这可能取决于Git用于HTTPS传输的网络库。


4
确保也chmod 0600 ~/.netrc
13年

只想在此处留下指向Ubuntu netrc联机帮助页的链接。我需要为另一个用户(/home/git/.netrc)创建它,然后将所有权更改为该用户。
zacharydl

17

对于Windows,您可以使用Git凭据管理器(GCM)插件。它目前由Microsoft维护。令人高兴的是,它会将密码保存在Windows凭据存储中,而不是纯文本格式。

在项目的发行页面上有一个安装程序。这还将安装带有内置凭据管理器的WindowsGit正式版。它允许对GitHub(和其他服务器)进行两步验证。并具有用于初始登录的图形界面。

对于Cygwin用户(或已经使用Windows官方Git的用户),您可能更喜欢手动安装。从发布页面下载zip软件包。解压缩该程序包,然后运行该install.cmd文件。这将安装到您的~/bin文件夹。(确保~/bin目录位于PATH中。)然后使用以下命令对其进行配置:

git config --global credential.helper manager

然后,git-credential-manager.exe当对任何服务器进行身份验证时,Git将运行。


3
登录到您帐户的任何人都可以轻松访问密码的明文。他们所需要做的就是向凭证管理器发送一个请求,例如printf "protocol=https\nhost=git.mycompany.com\n" | git credential-manager get此处有更多详细信息)。您应该始终对此使用个人访问令牌,并且当然要在GitHub帐户上使用2FA。
cjs

13

如果您不想像Mark所说的那样以明文形式存储密码,则可以使用与推送不同的GitHub URL进行获取。在您的配置文件中[remote "origin"]

url = git://github.com/you/projectName.git
pushurl = git@github.com:you/projectName.git

推送时,它仍然会要求输入密码,而取回时,至少在开源项目中,它不会要求输入密码。


12

OAuth

您可以创建自己的个人API令牌OAuth),并以与使用常规凭据相同的方式使用它(at:)/settings/tokens。例如:

git remote add fork https://4UTHT0KEN@github.com/foo/bar
git push fork

.netrc

另一种方法是在~/.netrc_netrcWindows上)中配置用户名/密码,例如

machine github.com
login USERNAME
password PASSWORD

对于HTTPS,添加额外的行:

protocol https

凭证助手

要在使用HTTPS时在Git中缓存GitHub密码,您可以使用凭据助手来告诉Git每次与GitHub对话时都要记住您的GitHub用户名和密码。

  • 苹果:git config --global credential.helper osxkeychainosxkeychain helper需要)
  • 视窗: git config --global credential.helper wincred
  • Linux和其他: git config --global credential.helper cache

有关:


10

您可以使用凭据助手。

git config --global credential.helper 'cache --timeout=x'

x秒数在哪里。


7
它是秒数...一些天才将其更新为毫秒,每个人都未经检查就批准了它。如果您不知道答案,请不要误导他人。谢谢!
Charan 2014年

你可以给一个链接到一个地方storecache和其他常见的东西列出并解释呢?
Notinlist,2014年

3
值得一提的是,除非您先调用另一个特定命令以首先使用“缓存”作为管理器,否则这会造成麻烦吗?这些东西太神秘了,所有这些答案都不完整,没有一个起作用。令人难以置信的令人沮丧。改为查看此内容:stackoverflow.com/a/24800870/88409
Triynko '17

10

克隆存储库后repo,您可以编辑repo/.git/config并添加一些配置,如下所示:

[user]
    name = you_name
    password = you_password
[credential]
    helper = store

然后,你将不会被要求usernamepassword试。


适用于我helper = manager(但第一次推送时会要求我输入用户名+存储库)。
史黛芬洛朗(StéphaneLaurent)

与helper = manager我收到错误凭据管理器不是git命令
卡皮尔

不幸的是,git忽略了配置文件中的密码。带有credential.store的.git_credentials是唯一的选择。
阿瓦曼德

9

我知道这不是一个安全的解决方案,但有时您只需要一个简单的解决方案-无需安装其他任何东西。由于helper = store对我不起作用,因此我创建了一个虚拟助手:

创建一个脚本并将其放在用户bin文件夹中,该文件夹名为credfake,该脚本将提供您的用户名和密码:

#!/bin/bash
while read line
do
  echo "$line"
done < "/dev/stdin"
echo username=mahuser
echo password=MahSecret12345

使它可执行:

chmod u+x /home/mahuser/bin/credfake

然后在git中配置它:

git config --global credential.helper /home/mahuser/bin/credfake

(或仅将其与--global一起用于一个仓库)

和-voilá-git将使用该用户+密码。


我同意。确实简单(如果不安全)的解决方案。+1,只要您知道自己在做什么。
VonC

7

应该使用身份验证令牌代替帐户密码。转到GitHub设置/应用程序,然后创建一个个人访问令牌。可以使用与使用密码相同的方式使用令牌。

该令牌旨在允许用户不使用帐户密码进行项目工作。仅在进行管理工作(例如创建新令牌或撤销旧令牌)时使用密码。


可以使用项目特定的部署密钥来授予对单个项目存储库的访问权限,而不是向用户授予对GitHub帐户的整体访问权限的令牌或密码。当您仍然可以使用普通凭据访问其他Git帐户或项目时,可以将Git项目配置为在以下步骤中使用此其他密钥:

  1. 编写一个包含一个SSH的配置文件HostIdentityFile为部署关键,也许是UserKnownHostsFile,也许User(虽然我认为你不需要它)。
  2. 编写一个实际上是 ssh -F /path/to/your/config $*
  3. 前置GIT_SSH=/path/to/your/wrapper在普通的Git命令的前面。在这里git remote(原点)必须使用git@github.com:user/project.git格式。

7

最好将凭据用于安全性,但是您可以使用缓存将其保留一段时间:

git config --global credential.helper cache
git config credential.helper 'cache --timeout=3600'

您的凭据将保存3600秒。


这意味着3600秒后,我们必须再次输入密码?如何永久保存它们?
HoangVu 2015年

$ git config credential.helper'cache --timeout = 3600'错误:无法锁定配置文件.git / config:无此类文件或目录
PlantationGator 2015年

这工作:混帐配置--global credential.helper的缓存--timeout = 3600'
PlantationGator

@Tama我知道已经过去三年了,但是您可以不进行任何操作--timeout,并且凭据将永久存储。
尼尔·乔杜里

能否在Docker容器(基于中windowsservercore)内工作?
彼得·莫滕森

5

如果您像我一样使用双重身份验证,则情况会有所不同。由于在其他地方找不到很好的答案,因此我在这里贴一个,以便以后再找到它。

如果您使用的是双重身份验证,则指定用户名/密码甚至都行不通-您将被拒绝访问。但是您可以使用应用程序访问令牌,并使用Gi​​t的凭据帮助器为您缓存该令牌。以下是相关链接:

而且我不记得我在哪里看到过这个信息,但是当系统要求您输入用户名时,即会在其中粘贴应用程序访问令牌。然后将密码留空。它适用于我的Mac。


当使用双向身份验证时,使用“访问令牌”作为密码。用户名始终保持不变
Ben Yitzhaki

4

这对我有效,我正在使用Windows 10

git config --global credential.helper wincred

4

通常您有一个远程URL,像这样,

git remote -v

origin    https://gitlab.com/username/Repo.git (fetch)
origin    https://gitlab.com/username/Repo.git (push)

如果要在使用时跳过用户名和密码git push,请尝试以下操作:

 git remote set-url origin https://username:password@gitlab.com/username/Repo.git

我刚刚在来源处添加了相同的URL(包括用户详细信息,包括密码)。

注意:如果用户名是电子邮件ID,则无法使用。

git remote -v

origin    https://username:password@gitlab.com/username/Repo.git (fetch)
origin    https://username:password@gitlab.com/username/Repo.git (push)

3

我从gitcredentials(7)手册页中得到了答案。就我而言,我的Windows安装中没有凭据缓存;我使用凭证存储。

使用凭据存储后,用户名/密码存储在[用户文件夹] /。git-credentials文件中。要删除用户名/密码,只需删除文件内容即可。


2
如果您的Windows中没有凭据缓存,建议您git config --global credential.helper wincred永久使用此存储密码。
Chetabahana '16

2

作曲者文档提到您可以阻止它使用GitHub API,因此它的行为类似于git clone

如果将no-api密钥设置true为GitHub存储库上的密钥,它将像使用任何其他Git存储库一样克隆存储库,而不是使用GitHub API。但是与git直接使用驱动程序不同,作曲家仍将尝试使用GitHub的zip文件。

因此,该部分如下所示:

"repositories": [
    {
        "type": "vcs",
        "no-api": true,
        "url": "https://github.com/your/repo"
    }
],

请记住,API在那里是有原因的。因此,对于github.com上增加的负载,这应该是不得已的方法。


不确定此答案与原始问题有什么关系。
Charles Oppermann

2

您还可以编辑bashrc文件并在其中添加脚本。

启动Git时,它将要求您输入一次密码,然后记住该密码,直到您注销为止。

SSH_ENV=$HOME/.ssh/environment
  
# Start the ssh-agent
function start_agent {
    echo "Initializing new SSH agent..."

    # Spawn ssh-agent
    /usr/bin/ssh-agent | sed 's/^echo/#echo/' > "${SSH_ENV}"
    echo succeeded
    chmod 600 "${SSH_ENV}"
    . "${SSH_ENV}" > /dev/null
    /usr/bin/ssh-add
}
  
if [ -f "${SSH_ENV}" ]; then
     . "${SSH_ENV}" > /dev/null
   ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || {
      start_agent;
  }
else
    start_agent;
fi

0

如果您正在使用osxkeychain令牌并且令牌要更新,请按照以下步骤操作:

在终端中运行,然后按Enter键两次。

git credential-osxkeychain erase
 host=github.com
 protocol=https

现在,系统将提示您输入用户名/密码。但是有时似乎这并不“费力”,您必须继续重新输入。

如果是这样,请重新启动计算机。现在,下次您运行git命令并输入用户名/密码时,它将被保存。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.