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

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

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

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


当前回答

除了更改为SSH之外,如果您不介意以明文形式输入密码,您还可以继续使用HTTPS。把这个放到你的~/.netrc中,它不会要求你输入用户名/密码(至少在Linux和Mac上是这样):

machine github.com
       login <user>
       password <password>

添加(请参见VonC的第二条评论):在Windows上,文件名为%HOME%\_netrc。

如果您想加密,请阅读VonC的第一条评论。

如果您有Git 1.7.10或更高版本,则可以使用另一个插件(请参见user137717的注释)。

使用凭据助手在Git中缓存GitHub密码:

如果要使用HTTPS克隆GitHub存储库,可以使用凭据助手,告诉Git记住您的GitHub用户名和密码。

这也适用于Linux、Mac和Windows。

其他回答

如果SSH密钥或.netrc文件不适用于您,那么另一个简单但不太安全的解决方案可能适用于您:git credential store-Helper将凭据存储在磁盘上:

git config --global credential.helper store

默认情况下,凭据将保存在文件~/.git凭据中。它将被创建并写入。

请注意,使用此助手将在磁盘上存储未加密的密码,仅受文件系统权限的保护。如果这可能不是可接受的安全权衡。

您可以在Git中缓存GitHub密码:

只需遵循GitHub官方文档中的说明即可。

按照上述链接中的说明进行操作后,您应该可以在不每次输入用户名/密码的情况下,向存储库推送/从存储库中推送。

对于Mac OS

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

直接更新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密钥

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

git config --list --show-origin

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

[credential]
    helper = store