Google 授权登录 GitHub,拉取代码需要用户名和密码怎么办
GitHub 已经移除了 Git over HTTPS 的密码认证;命令行里如果提示输入 password,实际要填的是 Personal Access Token(PAT)。官方也建议在 HTTPS 下配合 Git Credential Manager 或 GitHub CLI 缓存凭据。 
你这种“Google 授权登录 GitHub”的账号也一样能用,关键不是 Google 密码,而是:
• 用户名:你的 GitHub username
• 密码:你的 GitHub PAT token,不是 GitHub 登录密码,也不是 Google 密码。 
先确认你的 GitHub 用户名
浏览器登录 GitHub 后,右上角头像进去看个人主页,github.com/你的用户名 里的那段就是用户名。命令行里提示 Username 时填这个。
最直接的配置方式:HTTPS + PAT
第一步:创建 Token
去 GitHub 的 token 管理页面,创建一个 fine-grained personal access token 或 classic token。官方说明里明确写了,PAT 可以在命令行里替代密码使用。 
如果只是拉 private 仓库,通常至少需要给这个仓库读权限。
如果还要 push,就再给写权限。
第二步:确认远程地址是 HTTPS
进入你的项目目录执行:
git remote -v
如果看到类似:
origin https://github.com/你的用户名/仓库名.git (fetch)
origin https://github.com/你的用户名/仓库名.git (push)
就对了。
如果不是 HTTPS,可以改成:
git remote set-url origin https://github.com/你的用户名/仓库名.git
第三步:拉代码时输入
git pull
提示输入时:
• Username: 填 GitHub 用户名
• Password: 填 PAT token
不是填 Google 密码。
⸻
在 Mac 上把 token 记住
GitHub 官方对 macOS 提到可以用 git-credential-osxkeychain 或 Git Credential Manager 缓存凭据,这样以后 pull/push 不用反复输入。 
先执行:
git config --global credential.helper osxkeychain
然后下一次你执行:
git pull
输入一次:
• Username: GitHub 用户名
• Password: PAT token
macOS Keychain 一般就会帮你记住。
⸻
如果之前输错过密码,要先清掉旧凭据
因为你是 Mac,旧的错误密码可能已经被钥匙串保存了。GitHub 官方也有专门的 macOS Keychain 更新说明。 
你可以这样处理:
方法 1:打开钥匙串手动删
打开 钥匙串访问,搜索:
github.com
把和 GitHub 相关的旧 Internet password 删除。
方法 2:命令行清理旧凭据
printf "protocol=https\nhost=github.com\n" | git credential-osxkeychain erase
然后重新执行:
git pull
再输入新的:
• 用户名 = GitHub 用户名
• 密码 = PAT token
⸻
还可以直接把用户名写进 Git 配置
这样以后至少不用反复输用户名:
git config --global user.name "你的名字"
git config --global user.email "你的GitHub邮箱"
git config --global credential.username "你的GitHub用户名"
注意:
• user.name 是提交记录显示名字
• credential.username 才是认证时默认用户名
⸻
更推荐的方案:改用 SSH
你前面已经确认这台 Mac 还没有 SSH 配置。如果你不想再折腾用户名 + token,改用 SSH 会更省心。GitHub 官方也明确说,SSH 可以用 SSH key 认证,不需要 HTTPS 凭据。 
Mac 上大致就是:
ssh-keygen -t ed25519 -C "你的GitHub邮箱"
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
cat ~/.ssh/id_ed25519.pub
把公钥加到 GitHub 账户后,把仓库地址改成:
git@github.com:用户名/仓库名.git
以后 git pull 基本就顺很多。
⸻
你这个场景的最短做法
如果你现在只想马上把代码拉下来,按这个走:
git config --global credential.helper osxkeychain
git pull
然后输入:
• Username:你的 GitHub 用户名
• Password:你的 PAT token
如果报认证错误,通常是这几种原因:
• 填成了 Google 密码
• 填成了 GitHub 登录密码
• token 权限不够
• 之前 Keychain 里缓存了旧密码
• 仓库地址不是你有权限的那个仓库 
更多推荐

所有评论(0)