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 里缓存了旧密码
• 仓库地址不是你有权限的那个仓库 

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐