You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

执行git push origin $BranchName跳转至GitLab登录页,命令行与GUI均报错求助

解决Git Push被重定向到GitLab登录页的问题

我遇过好多次这种离谱的情况——明明浏览器和命令行都显示登录成功,但push操作就是被强制跳转到登录页,连GitHub Desktop GUI也跟着中招。试试下面这些排查步骤,大概率能解决:

1. 检查远程仓库的URL配置

有时候本地仓库的远程URL可能是HTTPS格式,哪怕你以为已经用了SSH认证。先在命令行里确认:

git remote -v

如果输出里是https://gitlab.com/xxx/xxx.git而非git@gitlab.com:xxx/xxx.git,那问题可能出在这:

  • 想改用SSH的话,直接修改远程URL:
    git remote set-url origin git@gitlab.com:你的用户名/你的仓库名.git
    
  • 坚持用HTTPS的话,要确保Git缓存的凭据是正确的:
    • Windows:打开「凭据管理器」→「Windows凭据」,找到gitlab.com的条目,更新为正确的个人访问令牌(PAT)或密码
    • Mac:打开「钥匙串访问」,搜索gitlab.com,修改对应的凭据信息
    • Linux:用git config --global credential.helper store重新管理凭据,push时按提示输入用户名和PAT

2. 验证GitLab个人访问令牌(PAT)的权限

如果用PAT登录命令行,很可能是令牌的权限不够。去GitLab的「用户设置」→「访问令牌」里检查:

  • 必须勾选write_repository权限(push操作需要写仓库的权限)
  • 确认令牌有没有过期,过期的话重新生成一个,然后在命令行重新配置身份:
    git config --global user.name "你的GitLab用户名"
    git config --global user.email "你的注册邮箱"
    
    再次push时,用户名填GitLab账号,密码填新生成的PAT即可。

3. 清理GitLab会话与Cookie冲突

浏览器登录状态和命令行/Desktop的认证会话可能存在冲突,或者缓存了旧的无效Cookie:

  • 先退出Chrome里的GitLab登录,清除GitLab相关的Cookie,再重新登录
  • 对于GitHub Desktop,尝试退出当前绑定的GitLab账户,重新添加时明确选择对应的认证方式(SSH或HTTPS)

4. 排查SSH密钥配置(如果用SSH认证)

如果用SSH连接,确认密钥已经正确添加到GitLab:

  • 查看本地公钥:cat ~/.ssh/id_rsa.pub(如果是ed25519密钥就是id_ed25519.pub)
  • 去GitLab的「用户设置」→「SSH密钥」里,确认这个公钥已经添加且未过期
  • 测试SSH连接:ssh -T git@gitlab.com,如果返回Welcome to GitLab, @你的用户名!就是正常的,否则重新生成密钥并添加

5. 禁用Git的HTTP自动重定向(极端情况)

有时候Git的自动重定向机制会导致认证请求失效,可以尝试关闭这个设置:

git config --global http.followRedirects false

之后再尝试push,看是否还会被重定向到登录页


内容的提问来源于stack exchange,提问作者D. Miller

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 10:15:46