Git拉取/推送报错“unable to update url base from redirection”求助
解决Bitbucket SAML重定向导致Git Pull/Push失败的问题
问题根源
你的公司Bitbucket采用了SAML单点登录(通过Microsoft Entra ID跳转至Jira登录),Git的HTTP凭证助手无法处理这种网页登录形式的重定向。克隆时能正常弹出凭证窗口,是因为初始克隆请求的验证逻辑未触发SAML跳转,后续的pull/push操作触发了严格身份验证,但Git无法自动完成网页登录流程,因此报错。
可行解决方案
1. 使用个人访问令牌(PAT)替代密码
这是最可靠的解决方式,PAT无需网页验证,可直接通过Git进行身份认证:
- 登录公司Bitbucket,进入个人设置→Personal access tokens,生成一个新令牌,勾选
repo:read和repo:write权限(按需调整),保存好生成的令牌(仅显示一次)。 - 修改本地仓库的远程URL,将PAT嵌入其中:
git remote set-url origin https://<你的PAT>@bitbucket.<company_name>.eu/scm/baprjrobe/ba_prj_timetracking.git - 之后执行
git pull或git push即可直接通过验证,无需额外操作。
2. 配置凭证助手存储PAT(推荐,避免URL明文暴露)
如果不想在URL中明文写PAT,可配置Git凭证助手存储凭证:
- 先设置全局凭证助手:
# macOS git config --global credential.helper osxkeychain # Windows git config --global credential.helper wincred # Linux(使用libsecret) git config --global credential.helper libsecret - 执行
git pull,提示输入用户名时填你的公司账号,密码处填刚才生成的PAT。凭证助手会自动存储该信息,后续操作无需重复输入。
3. 清除本地无效缓存凭证
如果之前存储的旧凭证导致冲突,先清除无效缓存:
- macOS:打开钥匙串访问,搜索
bitbucket.<company_name>.eu相关条目,右键删除。 - Windows:打开控制面板→用户账户→凭据管理器→Windows凭据,找到Bitbucket的条目并删除。
- Linux:删除
~/.git-credentials文件,或执行git credential-cache exit清除缓存。
4. 尝试开启Git重定向跟随(辅助操作)
部分场景下开启重定向跟随可配合PAT使用,执行:
git config --global http.followRedirects true
内容的提问来源于stack exchange,提问作者hemmoleg
相关产品推荐
相关产品推荐

