如何在CMD中登录GitHub并切换至个人GitHub仓库目录?
嘿,我来帮你搞定这两个问题!咱们先解决切换至GitHub个人仓库失败的事儿,再讲CMD里怎么登录GitHub~
一、解决切换到GitHub个人仓库失败的问题
首先得明确:要切换到目标仓库目录,前提是这个仓库已经在你的本地电脑上了,要么是克隆下来的,要么是本地初始化后关联了远程仓库。我分两种常见情况给你拆解:
情况1:你还没把远程仓库克隆到本地
如果是这种情况,先把仓库克隆到本地再切换:
- 打开CMD,先导航到你想存放仓库的文件夹,比如你想放在
D:\我的项目里,就执行:cd D:\我的项目 - 然后克隆你的GitHub仓库,把命令里的用户名和仓库名替换成你自己的:
git clone https://github.com/你的用户名/你的仓库名.git - 克隆完成后,直接用下面的命令就能进入仓库目录了:
cd 你的仓库名
情况2:你已经克隆了仓库,但切换目录失败
如果是这种情况,咱们一步步排查:
- 先确认路径是否正确:在CMD里执行
dir命令,看看当前目录下有没有你的仓库文件夹,是不是名字输错了(比如大小写、空格问题) - 检查远程仓库关联是否正确:进入仓库目录后,执行
git remote -v,看看输出的地址是不是https://github.com/你的用户名/你的仓库名.git(或者SSH地址)。如果不对,重新关联:git remote set-url origin https://github.com/你的用户名/你的仓库名.git - 权限问题:如果操作时提示“权限不足”,那大概率是没正确登录GitHub,这部分咱们后面讲登录方法的时候解决
额外确认:全局用户名/邮箱是否生效
虽然你说已经设置了全局配置,但可以再验证一下:进入仓库目录后,执行这两个命令,看看输出是不是你的GitHub用户名和邮箱:
git config user.name git config user.email
如果不是,说明仓库的本地配置覆盖了全局配置,你可以在仓库目录下重新设置:
git config user.name "你的GitHub用户名" git config user.email "你的GitHub邮箱"
二、在CMD中登录GitHub的方法
注意哦,现在GitHub已经不支持用账号密码直接在CMD里登录了,必须用「个人访问令牌(PAT)」或者「SSH密钥」来验证,我给你讲两种最常用的方法:
方法1:使用个人访问令牌(PAT)—— 快速便捷
这是最省心的方法,步骤很简单:
- 先在GitHub官网生成PAT:
- 登录GitHub,依次点击「Settings」>「Developer settings」>「Personal access tokens」>「Tokens (classic)」
- 点击「Generate new token」,设置令牌的有效期(比如选“No expiration”长期有效),然后勾选至少
repo权限(要操作仓库的话必须勾),最后生成并复制这个令牌(一定要存好,关闭页面后就再也看不到了!)
- 在CMD中使用PAT:
- 当你执行
git clone、git push这类需要权限的命令时,会弹出提示让你输入用户名和密码:- 用户名:输入你的GitHub用户名
- 密码:输入刚才生成的个人访问令牌,不是你的GitHub账号密码!
- 如果你想让Git记住这个令牌,避免每次都输入,执行下面的命令(Windows系统适用):
这个命令会把凭证存在Windows的凭据管理器里,下次操作就不用输了git config --global credential.helper wincred
- 当你执行
方法2:使用SSH密钥—— 免密登录
如果不想每次输入令牌,可以用SSH密钥实现免密操作:
- 生成SSH密钥:
在CMD里执行下面的命令,把邮箱换成你自己的GitHub邮箱:
一路按回车用默认设置就行,生成的密钥会存在ssh-keygen -t ed25519 -C "你的GitHub邮箱"C:\Users\你的Windows用户名\.ssh目录下,其中id_ed25519是私钥(别泄露!),id_ed25519.pub是公钥 - 把公钥添加到GitHub:
- 打开
id_ed25519.pub文件,复制里面的全部内容 - 登录GitHub,依次点击「Settings」>「SSH and GPG keys」>「New SSH key」
- 粘贴公钥内容,给密钥起个好记的名字(比如“CMD SSH密钥”),然后保存
- 打开
- 测试连接:
在CMD里执行:
如果出现ssh -T git@github.comHi 你的GitHub用户名! You've successfully authenticated, but GitHub does not provide shell access.的提示,就说明配置成功了 - 之后操作仓库时,用SSH地址代替HTTPS地址,比如克隆命令变成:
这样后续git clone git@github.com:你的用户名/你的仓库名.gitgit push、git pull都不用输入凭证了
内容的提问来源于stack exchange,提问作者Jesselyn Firesta




