BACKEND2026-04-09📖 3分

Gitのリモートブランチを削除する方法|ローカル・リモート両方の手順を解説

Gitのリモートブランチを削除する方法|ローカル・リモート両方の手順を解説

Gitのリモートブランチを削除する方法を解説。git push origin --deleteによるリモート削除、git branch -dによるローカル削除、リモートリポジトリ自体の削除、削除を元に戻す方法まで、実務で必要な手順をまとめました。

髙木 晃宏

代表 / エンジニア

👨‍💼

チーム開発を進めていくと、マージ済みのブランチがリモートリポジトリに大量に残ってしまうことがあります。放置するとブランチ一覧が煩雑になり、どのブランチがアクティブなのか判別しにくくなるものです。

本記事では、Gitのリモートブランチを削除する方法を中心に、ローカルブランチの削除、リモートリポジトリの接続解除、削除したブランチの復元方法まで、実務で必要な手順を体系的に解説します。

Gitのリモートブランチを削除するコマンド

リモートブランチを削除するには、git push--deleteオプションを付けて実行します。

git push origin --delete feature/old-branch

このコマンドは、リモートリポジトリ(origin)からfeature/old-branchを削除します。実行後、他のチームメンバーがgit fetch --pruneを行うと、ローカルのリモート追跡ブランチも自動的に消えます。

古い書式として、以下の形でも同じ操作が可能です。

# コロンの前が空 = 「何もない状態」をリモートにpush = 削除 git push origin :feature/old-branch

こちらはGit初期からある書き方ですが、直感的ではないため、--deleteを使うことをお勧めします。

⚠ 注意: リモートブランチの削除はチーム全体に影響します。マージ済みであることを確認してから実行してください。

削除前の安全確認

削除対象のブランチがマージ済みかどうかは、以下のコマンドで確認できます。

# mainにマージ済みのブランチを一覧表示 git branch -r --merged main

この一覧に含まれるブランチは安全に削除できます。逆に、マージされていないブランチを確認するには--no-mergedを使います。

# mainにマージされていないブランチを一覧表示 git branch -r --no-merged main

ローカルブランチを削除する方法

リモートブランチの削除とは別に、ローカルに残っているブランチも整理する必要があります。

# マージ済みのローカルブランチを削除 git branch -d feature/old-branch # マージされていないブランチを強制削除 git branch -D feature/old-branch

-d(小文字)はマージ済みブランチのみ削除可能で、未マージのブランチを指定するとエラーになります。これはGitの安全機構であり、作業内容を誤って失うことを防いでくれます。

-D(大文字)は強制削除です。未マージの変更が含まれていても削除されるため、内容を確認してから使用してください。

マージ済みローカルブランチの一括削除

マージ済みのブランチが多数ある場合、以下のワンライナーで一括削除できます。

# mainにマージ済みのローカルブランチを一括削除(main自体は除外) git branch --merged main | grep -v "main" | xargs git branch -d

このコマンドは頻繁に使うため、Gitのエイリアスに登録しておくと便利です。

git config --global alias.cleanup '!git branch --merged main | grep -v "main" | xargs git branch -d' # 以降は以下で実行可能 git cleanup

リモートとローカルのブランチを両方削除する手順

実務では、リモートとローカルの両方を同時に削除するケースが大半です。以下の順序で実行します。

# 1. リモートブランチを削除 git push origin --delete feature/old-branch # 2. ローカルブランチを削除 git branch -d feature/old-branch # 3. リモート追跡ブランチの参照を整理 git fetch --prune

この3ステップをセットで覚えておくと、ブランチ整理が効率的に進みます。

git remoteの削除(リモートリポジトリの接続を解除する)

「git remote 削除」で検索される方は、リモートブランチではなくリモートリポジトリとの接続自体を解除したいケースが多いかもしれません。

# 登録済みリモートの一覧を確認 git remote -v # リモートリポジトリの接続を解除 git remote remove origin

git remote removegit remote rmでも可)は、ローカルリポジトリからリモートリポジトリへの参照を削除するコマンドです。リモートリポジトリ自体は削除されません。

よくあるユースケースとしては、フォーク元のリポジトリからcloneした後に自分のリポジトリをoriginとして再設定する場合があります。

# 旧originを削除 git remote remove origin # 新しいoriginを設定 git remote add origin git@github.com:your-account/your-repo.git # 確認 git remote -v

リモートリポジトリ自体を削除する場合

GitHubやGitLabのリポジトリそのものを削除したい場合は、Gitコマンドではなく各プラットフォームのWeb UI上で行います。

  • GitHub: Settings → Danger Zone → Delete this repository
  • GitLab: Settings → General → Advanced → Delete project

⚠ 注意: リポジトリの削除は不可逆です。チーム全員のアクセスが失われ、Issue、Pull Request、Wikiなども全て削除されます。必ずバックアップを取得してから実行してください。

削除済みリモートブランチの参照をローカルから整理する

チームで開発していると、他のメンバーがリモートブランチを削除しても、自分のローカルにはリモート追跡ブランチの参照(origin/feature/...)が残り続けます。

# 削除済みリモートブランチの参照を一括でクリーンアップ git fetch --prune # 短縮形 git fetch -p

--pruneオプションを付けることで、リモートに存在しないブランチのローカル参照が自動的に削除されます。

毎回手動で実行するのが面倒な場合は、fetchのたびに自動でpruneする設定も可能です。

git config --global fetch.prune true

この設定を入れておくと、git fetchを実行するだけで不要なリモート追跡ブランチが自動的に整理されます。チーム開発では非常に有用な設定です。

削除したブランチを復元する方法

「間違えてブランチを削除してしまった」というケースは、チーム開発では珍しくありません。Gitはほとんどのデータを内部的に保持しているため、多くの場合は復元可能です。

ローカルブランチの復元

git reflogを使って、削除したブランチの最後のコミットハッシュを特定します。

# reflogで削除されたブランチのコミットを探す git reflog # 見つかったコミットハッシュからブランチを再作成 git checkout -b feature/old-branch abc1234

reflogはデフォルトで90日間の履歴を保持しているため、よほど古いものでなければ復元できます。

リモートブランチの復元

リモートブランチを削除した直後であれば、チームメンバーのローカルにブランチが残っている可能性があります。そこからpushしてもらうのが最も簡単です。

誰のローカルにも残っていない場合は、自分のreflogから復元してpushし直します。

# reflogからコミットハッシュを特定 git reflog # ローカルブランチを再作成 git checkout -b feature/old-branch abc1234 # リモートに再push git push origin feature/old-branch

チーム開発でのブランチ削除運用のベストプラクティス

ブランチの削除はチーム全体に影響する操作です。以下の運用ルールを整備しておくと、トラブルを未然に防げます。

マージ後の自動削除を有効にする: GitHubのPull Request設定で「Automatically delete head branches」をオンにすると、マージ完了時にリモートブランチが自動削除されます。最も手軽で確実な方法です。

ブランチ命名規則を統一する: feature/bugfix/hotfix/などのプレフィックスをチームで統一しておくと、削除対象の判別が容易になります。

定期的なブランチ棚卸し: 月次や隔週でマージ済みブランチの一括削除を実施する運用も効果的です。前述のgit cleanupエイリアスが活躍します。

保護ブランチの設定: main/develop等の重要なブランチには、GitHubのBranch Protection Rulesを設定し、誤削除を防止しましょう。

まとめ

Gitのリモートブランチ削除に関する操作をまとめます。

やりたいことコマンド
リモートブランチを削除git push origin --delete branch-name
ローカルブランチを削除git branch -d branch-name
強制削除(未マージ)git branch -D branch-name
リモート接続を解除git remote remove origin
不要なリモート参照を整理git fetch --prune
削除したブランチを復元git checkout -b branch-name <commit-hash>

ブランチの整理は地味な作業ですが、チーム開発の見通しを良くし、日常のGit操作をスムーズにする重要な運用習慣です。

リモートブランチの取得方法については、「Gitでリモートブランチをチェックアウトする方法」で詳しく解説しています。また、Gitリポジトリからファイルを削除する方法は「Gitでファイルを削除する方法」をご覧ください。

aduce株式会社では、Git運用の標準化を含む開発プロセスの最適化をIT顧問サービスとしてご支援しています。チームのGitワークフローを改善したいとお考えでしたら、ぜひお問い合わせからご相談ください。