You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

启用GitHub双因素认证(2FA)后,如何使用Visual Studio Code提交代码

解决GitHub启用2FA后VS Code无法提交代码的问题

嗨,这个问题我之前刚踩过坑!当你给GitHub账号开启双因素认证(2FA)后,传统的用户名+密码验证方式就不再被GitHub接受了——这就是VS Code一直弹框要你输入却无法通过的原因。用个人访问令牌(PAT)替代密码是官方推荐的解决方案,我给你一步步讲怎么操作:

第一步:生成GitHub个人访问令牌(PAT)

  • 登录你的GitHub账号,点击右上角头像,选择「Settings」
  • 在左侧菜单栏往下滑,找到「Developer settings」并点击进入
  • 选择「Personal access tokens」→「Tokens (classic)」
  • 点击「Generate new token (classic)」:
    • 给令牌起个好记的名字(比如「VS Code 仓库访问令牌」),方便后续识别
    • 在「Select scopes」里勾选需要的权限:至少要勾选「repo」(这个权限涵盖了仓库的拉取、提交、推送等核心操作),如果需要操作Gist或者其他功能,可以按需勾选对应权限
    • 拉到页面底部点击「Generate token」,这时候一定要把生成的令牌文本复制下来!关闭这个页面后就再也看不到了,建议存到安全的地方(比如密码管理器)

第二步:在VS Code里配置PAT替代密码

有两种常见场景,对应不同的操作方式:

场景1:VS Code弹出用户名/密码输入框

  • 用户名栏输入你正常的GitHub用户名
  • 密码栏直接粘贴刚才生成的PAT,点击确认后就能正常提交代码了

场景2:VS Code自动用旧密码导致验证失败(没弹框或弹框一直报错)

这是因为系统之前保存过你的GitHub密码,VS Code会自动调用旧密码,这时候需要先清除已保存的凭据:

  • Windows:打开「凭据管理器」→ 切换到「Windows凭据」→ 找到所有和github.com相关的条目,右键删除。之后重启VS Code,会重新弹出输入框,按场景1的方式输入即可
  • Mac:打开「钥匙串访问」→ 搜索github.com,找到对应的密码条目删除,重启VS Code后重新输入
  • Linux:根据你使用的桌面环境,打开系统的凭据管理工具(比如GNOME的「密码和密钥」),找到GitHub相关的条目删除,或者直接重启VS Code触发重新验证

可选:让Git记住凭据,避免重复输入

如果不想每次操作都输PAT,可以在终端里进入你的仓库目录,执行以下命令:

git config credential.helper store

之后执行一次git pull或者git push,输入用户名和PAT,Git会把凭据存在本地,后续操作就不用再输入了

最后提醒一句:PAT的权限遵循「最小必要原则」,只勾选你需要的权限,这样就算令牌不慎泄露,也能把风险降到最低。要是之后不需要这个令牌了,也可以回到GitHub的令牌管理页面,直接revoke掉它。

内容的提问来源于stack exchange,提问作者John Little

火山引擎 最新活动