Git - 令牌登录

在GitLab上下载代码时,会让你输入账号密码登录,会给出提示:

复制代码
Cloning into 'xx'...
remote: HTTP Basic: Access denied. The provided password or token is incorrect or your account has 2FA enabled and you must use a personal access token instead of a password. See https://xx.cn/xx_git#error-on-git-fetch-http-basic-access-denied
fatal: Authentication failed for 'https://xx.git/'

核心:账号开启了二次验证 (2FA),不能用账号密码,必须使用个人访问令牌(Personal Access Token,PAT);或者旧的密码 /token 已经失效,常见于 GitLab。

方案 1:用 PAT 拼接在 clone 地址里(推荐)

  1. 登录你的 GitLab,生成个人访问令牌 (PAT )

    • 权限勾选:read_repository(仓库读取权限,如果需要提交还要勾选 write 相关)
    • 复制生成的 token(只显示一次,保存好)
  2. 修改 clone 命令,把用户名:token塞进 url:

    git clone https://你的用户名:生成的PAT@git地址/xxx/xxx_fe.git

示例: git clone https://zhangsan:glpat-xxxxxxxxxxxx@gitlab.xxx.com/sx-xxx/sx-xxx_fe.git

个人访问令牌 (PAT )申请

⚠️ 令牌只在生成那一刻显示一次,页面刷新 / 关掉之后就再也看不到了,生成完立刻复制保存!

  1. 登录你的 GitLab 网页端(公司内网 GitLab / 极狐 GitLab 都一样)
  2. 右上角点你的头像 → 【编辑个人资料】(Edit profile)
  3. 左侧菜单栏找到:访问 > 个人访问令牌 (Access > Personal access tokens);旧版界面叫【Access Tokens 访问令牌】
  4. 填写表单(重点)
    • 令牌名称 :随便写,例如 windows-git-clone,方便以后辨认
    • 过期日期:选一个到期时间(最多 365 天,不填默认一年)
    • 权限范围 (Scopes)【必勾选】 :✅ read_repository (只读仓库,拉代码必须这个权限;如果以后还要提交代码,再加write_repository)
    • 其他 api、read_user 可选,clone 代码只需要read_repository
  5. 点【生成令牌 / Generate token】
  6. 页面会出现一串以 glpat- 开头的字符串,全部复制,这就是你的访问令牌!

✅ 两种使用方式

方式 A:直接拼在 git clone 地址里(推荐一次性拉代码)
复制代码
git clone https://你的GitLab账号名:复制的glpat-xxxx@gitlab地址/xxx/sx-xxx_fe.git
方式 B:弹窗输入账号密码
  1. 先去 Windows【凭据管理器】删除旧的 gitlab 缓存凭据
  2. 执行普通 git clone https://xxx.git
  3. 弹窗用户名填你的 GitLab 账号;密码框粘贴这个 glpat 令牌,不要填登录密码

方案 2:清除 Windows 旧的凭证缓存(经常踩坑!)

Windows 会保存旧的账号密码,即使你重新输入,git 还在用缓存里失效的凭据。

  1. 打开控制面板 → 用户账户 → 凭据管理器 → Windows 凭据
  2. 找到对应 git 地址的条目(gitlab.xxx.com),直接删除
  3. 重新执行 git clone,弹窗输入:
    • 用户名:你的账号
    • 密码:粘贴 PAT 令牌,不是账号密码

方案 3:检查 2FA 状态

  • 如果账号开启了二次验证,绝对不能填登录密码,只能填 PAT
  • 如果没开 2FA,说明你输入的账号 / 密码错误,或者仓库没有权限(项目没分配给你)

方案 4:切换 SSH 方式(长期推荐,不用每次带 token)

  1. 生成 ssh 密钥,把公钥添加到 GitLab 账号 SSH 密钥

  2. 使用 ssh 地址 clone:

    git clone git@gitlab.xxx.com:sx-xxx/sx-xxx_fe.git

相关推荐
xhy_07073 小时前
Git 合并冲突怎么解决?用 AI 处理冲突的流程、Prompt 和 4 个易错点
人工智能·git·安全·prompt·ai编程·代码复审
Zhou1411366 小时前
Git_02_GitLab协作与CI_CD
git·ci/cd·gitlab
Zhou1411367 小时前
Git_03_GitFlow分支工作流
git
Flynt7 小时前
把 bug tracker 塞进 git 仓库,同步和冲突怎么解决?我把 git-bug 拆开实测了一遍
分布式·git·开源
louisgeek1 天前
Git submodule 子模块
git
imDwAaY1 天前
6篇文章讲清楚Git:Git 实用技巧:暂存现场、挑选提交与定位 Bug (5/6)
git·后端
imDwAaY1 天前
6篇文章讲清楚Git:Git 团队开发实践:从 Pull Request 到版本发布 (6/6)
git·后端
誰能久伴不乏2 天前
看懂 Git 团队协作全流程:分支、提交、PR、rebase 到底在干嘛
git
sunshine22 girl2 天前
git tag-项目流程
git