Bitbucket [远程拒绝] HEAD ->分支上的Git历史重写(预接收钩子被拒绝)

rseugnpd  于 2022-12-21  发布在  Git
关注(0)|答案(2)|浏览(184)

在Bitbucket上,我使用Bitbucket的网页界面,错误地将一个受祝福的repo与我自己的私有fork同步。我想重写受祝福的repo的历史,使它回到正确的提交。
我克隆了包含错误提交的受祝福的repo并在本地运行

git reset --hard HEAD~1

在历史被篡改的分支上。
这使克隆的回购协议回到了我搞砸它之前的提交状态。
然后我使用以下命令将我的repo推回到Bitbucket

git 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工作?

b4lqfgs4

b4lqfgs41#

在Bitbucket中,可以限制bucken-link use branch permissions的推送功率,以防止用户直接推送到分支。
从上述(旧的,不再可用的)文档...
用户可以自由地与本地克隆中的分支交互,当他们尝试推送到Bitbucket远程时,不允许推送到分支的用户会收到远程拒绝推送的消息。
您可以看到这对于强制执行典型的工作流是多么有用。
启用直接推送到存储库上的分支
后藤

Repo设置分支管理防止这些分支上的历史记录重写(重新定基)

然后在该页面上,删除要推送到的分支。
这样,您就可以运行git push origin +HEAD
然后,您应该将分支重新添加到列表中,以防止随机推送到存储库。

zf2sa74q

zf2sa74q2#

我不确定,但Bitbucket似乎已更改。要允许更改,您应转到存储库设置,然后在工作流中单击分支限制,单击以编辑您尝试更新的分支,然后选择允许重写分支历史记录

相关问题