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

Bitbucket git push授权失败求助:本地推送遭拒且提示工作树干净

解决Bitbucket推送时的两个常见问题:工作树干净提示与授权失败

嘿,我来帮你拆解这两个推送问题,都是Git对接Bitbucket时的典型坑,咱们一个个来解决:

一、提示「(use "git push" to publish your local commits) nothing to commit, working tree clean」

这个提示看似矛盾,其实核心原因无非两种情况:

  • 你有已提交的本地commit还没推送到远程
    先执行git status确认状态,如果看到类似「Your branch is ahead of 'origin/main' by 2 commits」的提示,说明本地已经完成提交,但还没推送到远程,直接执行git push origin <你的分支名>(比如git push origin main)即可。

  • 你误以为有需要推送的变更,但其实没完成add/commit流程
    如果你确实修改了文件但没提交,先执行git add .(或者指定单个文件,比如git add README.md)把变更暂存,然后git commit -m "描述你的变更,比如:更新README内容",完成提交后再执行push。

  • 额外小坑:你在错误的分支上操作
    用git branch看看当前分支(前面带*的就是当前分支),是不是和你要推送的远程分支对应?比如你要推main分支,但当前在dev分支,那先切换分支:git checkout main,再重复前面的步骤。

二、输入正确账号密码(甚至重置3次)仍被拒绝授权

这是因为Bitbucket早已停用账号密码直接用于Git推送的方式,现在必须用App Password或者SSH密钥,这是关键!给你两种解决方案:

方案1:使用App Password(推荐HTTPS方式用户)

  1. 登录Bitbucket账号,进入「Personal settings」(个人设置)
  2. 在左侧菜单找到「App passwords」,点击「Create app password」
  3. 给这个密码命名(比如「Git Push Password」),然后至少勾选「Repository」下的「Write」权限(如果需要其他权限可以按需勾选)
  4. 创建完成后,立刻复制这个密码(只会显示一次,一定要存好)
  5. 下次推送时,用户名填你的Bitbucket账号邮箱/用户名,密码填这个App Password,而不是你的账号登录密码

方案2:改用SSH密钥(免密码推送,更方便)

  1. 本地生成SSH密钥:打开终端执行ssh-keygen -t ed25519 -C "你的Bitbucket绑定邮箱",一路回车用默认设置就行(不用设密码,除非你需要额外安全)
  2. 复制公钥内容:
    • Windows:执行type ~/.ssh/id_ed25519.pub
    • Mac/Linux:执行cat ~/.ssh/id_ed25519.pub
  3. 回到Bitbucket个人设置,找到「SSH keys」,点击「Add key」,把复制的公钥粘贴进去保存
  4. 修改远程仓库URL为SSH格式:执行git remote set-url origin git@bitbucket.org:<你的用户名>/<仓库名>.git(替换成你自己的仓库地址)
  5. 之后再执行git push就不用输密码了,直接完成推送

额外排查点:清除旧凭据

如果之前Git保存了旧的账号密码,可能会自动填充导致失败:

  • Windows:打开「凭据管理器」→「Windows凭据」,找到Bitbucket相关的条目删除
  • Mac:执行git config --global credential.helper osxkeychain,然后在钥匙串访问里删除Bitbucket的相关凭据
  • Linux:检查~/.git-credentials文件,删除对应的Bitbucket条目

内容的提问来源于stack exchange,提问作者Alex Marr

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 04:26:04