执行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操作需要写仓库的权限) - 确认令牌有没有过期,过期的话重新生成一个,然后在命令行重新配置身份:
再次push时,用户名填GitLab账号,密码填新生成的PAT即可。git config --global user.name "你的GitLab用户名" git config --global user.email "你的注册邮箱"
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
相关产品推荐
相关产品推荐

