在“git push origin +HEAD”之后,Github要求在终端中每次“git push”都输入密码

3

首先声明:我知道在这种情况下SSH和HTTPS的区别。通常我会使用IntelliJ或VS Code创建和管理我的代码库,但即使从终端手动推送到远程,也从未需要输入我的凭据,尽管所有我的代码库都使用HTTPS。事实上,昨天我正在使用终端窗口将我的提交推送到一个特定的远程代码库,并没有要求我输入任何内容。今天我需要对同一仓库执行git push origin +HEAD命令,它要求我输入用户名和密码(PAT),现在每次我想要进行推送时,它都会提示我输入密码。

我使用的是Linux系统。

1个回答

1
您需要为Linux配置缓存凭据。
以下命令将在一段时间内(默认为15分钟)缓存凭据:
``` git config --global credential.helper cache ```
如果您想永久存储凭据,请使用以下命令:
``` git config --global credential.helper store ```
如需更多信息,请参见此答案

真正困扰我的是,以前我能够毫不费力地做到这一点,现在却不行了。这毫无意义。而且我从未在我的gitconfig中设置credential.helper。我知道这一点,因为我有一个备份副本的gitconfig文件,它只包含一些基本信息。 - Alex Braga
@AlexBraga 我认为你在 Linux 存储凭据方面存在问题。 通常密码在第一次推送后存储在凭据中,之后就不需要再次输入了。 - Eng_Farghly
好的,我刚发现了一件有趣的事情。当我尝试从随机终端窗口或IntelliJ IDEA内置终端执行 git push 时,它会要求我提供凭据。但是如果我从VS Code的内置终端执行此操作,则可以直接推送而无需任何请求。是VSCode将其授权令牌传递给终端吗? - Alex Braga
你应该在IntelliJ IDEA中更改凭据设置,查看此答案https://dev59.com/fF4c5IYBdhLWcg3wQYSC#59565351 - Eng_Farghly
那是个好发现,谢谢!确实,这是关于在gitconfig中配置我的凭据的问题。之前我能够无需密码进行git push 的原因是因为我没有意识到我一直都是从vscode中的集成终端执行此操作,就像我想的那样,它会将其授权传递给git命令,所以在我原始的帖子中,我没有正确地联想起来。 - Alex Braga

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接