Lesstep
Bitbucket Cloud・Data Center・git push・2026年10月28日に確認

Bitbucket:「! [remote rejected] main -> main (pre-receive hook declined)」

Bitbucket は push をブランチの制限と照らし合わせて断りました。Bitbucket のブランチは変わっておらず、コミットは手元のブランチに残っています。多いのは、そのブランチがプルリクエスト経由の変更しか受け付けないか、書き込める人が決まっている場合です。コミットを新しいブランチに載せて push し、プルリクエストを作ります。

メッセージの全体

Bitbucket Cloud(Atlassian 自身の記事にある形):

 ! [remote rejected] main -> main (pre-receive hook declined)
error: failed to push some refs to 'https://bitbucket.org/<ワークスペース>/<リポジトリ>'

古い公開の報告では、その上に remote: permission denied to update branch <ブランチ> の行もあります。

Bitbucket Data Center は理由を書きます(Atlassian のバグ管理にある報告の形):

remote: Branch refs/heads/<ブランチ> can only be modified through pull requests.
remote: Check your branch permissions configuration with the project administrator.

上の行に remote: Repository is over the size limit (4 GB) and will not accept further additions. とあるなら、原因はブランチの制限ではなくリポジトリの大きさです。直前の push を取り消す手順へ。

Atlassian が挙げる原因

Bitbucket Cloud について、Atlassian の記事 Unable to push to repository – "pre-receive hook declined" error(2025年9月26日更新)から:

Bitbucket Data Center では、制限の名前は Prevent changes without a pull request で、ブランチへの直接の push を止めます。プロジェクトかリポジトリの管理者が、ユーザー・グループ・アクセスキーを例外にできます(Using branch permissions)。

コミットをプルリクエストへ移す

# 1. コミットを新しいブランチに載せる(そのブランチに移る)
git switch -c my-change

# 2. 新しいブランチを push する
git push -u origin my-change

# 3. 手元の main を、サーバーにある位置へ戻す
git branch -f main origin/main

この3つは、main への push を断る手元の git サーバーで実際に動かしました。その断りは Bitbucket Cloud と同じ ! [remote rejected] main -> main (pre-receive hook declined) でした。コミットはサーバーの my-change に載り、手元の main は origin/main と同じ位置に戻りました。3 は 2 が成功してから行います。Git 2.23 より古ければ、1 は git checkout -b my-change です。

そのあと、my-change から main へのプルリクエストを作ります。Bitbucket Cloud では Create → Pull request で項目を埋め、Create pull request を押します。新しいブランチまで断られるなら、制限が main 以外にも掛かっています(Atlassian の制限は release/* のような名前の型にも掛けられます)。push してよいブランチの名前を、リポジトリの管理者に確かめます。

IntelliJ IDEA から Bitbucket のプルリクエストを作るなら

Pull Request Inbox for Bitbucket は、Lesstep が作っている JetBrains IDE(2024.1 以降)のプラグインです。Bitbucket Cloud と Data Center で、Git メニューに Bitbucket のプルリクエストを作成… を足します。今いるブランチから、選ばなければリポジトリのメインのブランチへ、プルリクエストを作ります。ブランチがまだ Bitbucket に無ければそう伝えて、先に IDE の push の画面を開きます。プルリクエストの作成・承認・マージは Pro(月 US$1.50・30日間の無料試用つき)、受信箱は無料です。画面は日本語です。

JetBrains Marketplace で入れる

Bitbucket と Atlassian は Atlassian の商標、IntelliJ IDEA は JetBrains s.r.o. の商標です。このページは Atlassian・JetBrains のいずれとも提携しておらず、承認も受けていません。

ほかに:パイプラインからの push で同じく断られる:「Permission denied to update branch」 · IntelliJ IDEA の Bitbucket プルリク用プラグインの比較 · English