在Bitbucket上,使用Bitbucket网络界面,我错误地用自己的私人分叉同步了一个受祝福的回购。我想在祝福的回购中重写历史记录,以使其恢复正确的提交。
我克隆了包含我不正确的提交并在本地运行的祝福仓库
git reset --hard HEAD~1
在历史被搞砸的分支上。
这让克隆的回购再次回到我搞砸之前的提交。
然后我使用
将我的回购推送回Bitbucketgit push -f origin development
但出现以下错误
remote: permission denied to force push branch development
To git@bitbucket.org:blessed-repo/blessed-repo.git
! [remote rejected] HEAD -> development (pre-receive hook declined)
error: failed to push some refs to 'git@bitbucket.org:blessed-repo/blessed-repo.git'
为什么我会收到此错误以及如何使git push
正常工作?
答案 0 :(得分:23)
在Bitbucket中,可以 limit push powers broken-link use branch permissions来阻止用户直接推送到分支机构。
从以上(旧的,不再可用的)文档...
用户可以自由地与其本地克隆中的分支进行交互。什么时候 他们试图推送到不允许使用的Bitbucket遥控器 推送到分支接收远程拒绝的消息 推。
您可以看到这对强制执行典型工作流程有何帮助。
启用直接推送到回购的分支
转到
回购> 设置> 分行管理> 防止在这些分支上重写历史记录(rebase)
然后在该页面上,删除您要推送的分支。
这样您就可以运行git push origin +HEAD
然后你应该将分支重新添加到列表中以防止随机推送到repo。