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

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

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

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


当前回答

对于那些对前面的答案感到困惑的新手,你可以这样做:

git remote -v

它会做出如下反应

origin    https://yourname@github.com/yourname/yourrepo.git (fetch)
origin    https://yourname@github.com/yourname/yourrepo.git (push)

然后,您可以运行许多其他人建议的命令,但现在您可以从上面知道您的名字和您的repo,因此您可以将上面的name/yourrepo.git剪切并粘贴到:

git remote set-url origin git@github.com:yourname/yourrepo.git

其他回答

除了更改为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。

一个常见的原因是使用默认(HTTPS)而不是SSH进行克隆。您可以通过转到存储库,单击“克隆或下载”,然后单击URL字段上方的“使用SSH”按钮,然后更新源远程的URL,如下所示:

git remote set-url origin git@github.com:username/repo.git

您可以使用以下方法检查是否已将远程添加为HTTPS或SSH:

git remote -v

GitHub中记录了这一点:将远程URL从HTTPS切换到SSH。

您需要执行两个步骤-

git远程删除原点git远程添加原点git@github.com:掘金AI/掘金.git

注意Git URL是SSH URL,而不是HTTPS URL。。。您可以从这里选择:

 # gen  the pub and priv keys
 # use "strange" naming convention, because those WILL BE more than 10 ...
 ssh-keygen -t rsa -b 4096 -C "me@corp.com" -f ~/.ssh/id_rsa.me@corp.com@`hostname -s`

 # set the git alias ONLY this shell session
 alias git='GIT_SSH_COMMAND="ssh -i ~/.ssh/id_rsa.me@corp.com.`hostname -s`" git'

 # who did what when and why
 git log --pretty --format='%h %ai %<(15)%ae ::: %s'

 # set the git msg
 export git_msg='issue-123 my important commit msg'

 # add all files ( danger !!! ) and commit them with the msg
 git add --all ; git commit -m "$git_msg" --author "Me <me@corp.com"

 # finally 
 git push

列出当前SSH密钥:

ls -l ~/.ssh

生成新的SSH密钥:

ssh-keygen -t ed25519 -C "your_email@example.com"

您应该更换的位置your_email@example.com使用您的GitHub电子邮件住址当提示输入保存密钥的文件时,按进来输入密码时(如果没有密码,则为空)-只需按输入(对于空密码短语)。再次列出SSH密钥:

ls -l ~/.ssh

现在应该已经添加了文件id_ed25519和id_ed25529.pub。在后台启动ssh代理:

eval $(ssh-agent -s)

将SSH私钥添加到SSH代理:

ssh-add ~/.ssh/id_ed25519

接下来将公钥输出到终端屏幕:

cat ~/.ssh/id_ed25519.pub

将输出复制到剪贴板(Ctrl+Insert)。去https://github.com/<您的github用户名>并使用您的用户名和密码。单击右上角的GitHub头像,然后单击设置。在左侧窗格中,单击SSH和GPG密钥。单击绿色按钮新建SSH密钥并将公共SSH密钥粘贴到标记为key的文本区域中。使用描述性标题,告诉您将使用哪台计算机使用此SSH密钥。单击添加SSH密钥。


如果您当前的本地存储库是使用http和用户名创建的,它需要重新创建,以便变得与SSH兼容。首先检查以确保您有一个干净的工作树这样你就不会失去任何工作:

git status

然后cd。。到父目录和rm-fr<repo的名称>。最后克隆一个使用SSH而不是用户名/密码的新副本:

git clone git@github.com:[your-github-username]/[repository-name].git

参考文献:https://docs.github.com/en/free-pro-team@最新的/github/认证到github/生成a-new-ssh-key-and-adding-it-the-sshagenthttps://docs.github.com/en/free-pro-team@最新/github/认证到github/添加a-new-ssh-key-to-your-github-account