我从我的GitHub帐户克隆了一个Git存储库到我的电脑。

我想使用我的电脑和笔记本电脑,但只有一个GitHub帐户。

当我尝试使用我的电脑推送到GitHub或从GitHub中拉取时,它需要用户名和密码,但当我使用笔记本电脑时不需要!

我不想每次与origin交互时都键入用户名和密码。我在这里缺少什么?


当前回答

对于Mac OS

转到您的Github设置->开发者设置->Github中的个人访问令牌页面(https://github.com/settings/tokens/new),并生成具有所有Repo权限的新令牌在mac上搜索Keychain Access->搜索github.com->单击Show password,然后粘贴刚才复制的令牌。转到CLI,它将再次询问用户名和密码,输入您的Github用户名并将令牌粘贴为密码,您应该可以继续使用CLI。

其他回答

我刚刚遇到了同样的问题,我找到的最简单的解决方案是使用SSH URL而不是HTTPS URL:

ssh://git@github.com/username/repo.git

而不是这样:

https://github.com/username/repo.git

现在,您可以只使用SSH密钥而不是用户名和密码进行验证。

对于Windows Git用户,在运行Git-config--globalcredential.helper store后,如果仍然提示输入密码,最好使用以下命令检查配置文件的写入位置

git config --list --show-origin

在我的例子中,在手动编辑配置文件“C:\Program Files\Git\mingw64\etc\gitconfig”并添加以下文本后,它就工作了。

[credential]
    helper = store

检查您的git版本和更新。然后将解决问题

$git更新windows的git

更新说明:当您的PC git版本和服务器git版本不匹配时,我们可以使用此选项。

直接更新Git配置文件(如果不想记住花哨的命令):

在您喜爱的文本编辑器中打开.git/config文件。它将在您克隆的文件夹中或执行git init的存储库中。进入该存储库。git是一个隐藏的文件夹,按Ctrl+H应该会显示隐藏的文件夹(终端中的ls-a)。

下面是.git/config文件的示例。复制并粘贴这些行,并确保使用Git信息更新这些行。

[user]
        name = Tux
        email = tux@gmail.com
        username = happy_feet

[remote "origin"]
        url = https://github.com/happy_feet/my_code.git
        fetch = +refs/heads/*:refs/remotes/origin/*

将SSH的URL部分更改为以下格式:

url = git@github.com:happy_feet/my_code.git

(以上格式不会随GitHub或Bitbucket等各种Git远程服务器而改变。如果您使用Git进行版本控制,则相同):

注意:连接到远程Git存储库的SSH方式将要求您将公共SSH密钥添加到Git远程服务器(如GitHub或Bitbucket。在设置页面搜索SSH密钥)。

要了解如何生成SSH密钥,请参阅:创建SSH密钥

正如许多用户所说,您只需将Git存储库URL从HTTPS更改为SSH即可。

如果您尚未在计算机中生成SSH密钥,那么您将不得不执行此操作。

作为补充信息,在进行此更改后,我仍然收到相同的错误:

权限被拒绝。

在我的案例中,问题是我使用的是Windows Shell来执行ngh命令;由于该命令应打开一个提示以请求SSH短语,而Windows Shell没有打开这些提示,因此身份验证失败。

所以,我只需要打开Gitshell并在那里执行ngh命令,每次它请求时都在提示符中输入SSH短语,然后“voilà”。。。它工作得很好!