短い答え
次のコマンドの詳細な説明が必要な場合は、次のセクションの長い回答を参照してください。
リモートブランチの削除
git push origin --delete <branch> # Git version 1.7.0 or newer
git push origin -d <branch> # Shorter version (Git 1.7.0 or newer)
git push origin :<branch> # Git versions older than 1.7.0
ローカルブランチの削除
git branch --delete <branch>
git branch -d <branch> # Shorter version
git branch -D <branch> # Force-delete un-merged branches
ローカルリモートトラッキングブランチを削除する
git branch --delete --remotes <remote>/<branch>
git branch -dr <remote>/<branch> # Shorter
git fetch <remote> --prune # Delete multiple obsolete remote-tracking branches
git fetch <remote> -p # Shorter
長い答え:削除する3つの異なるブランチがあります!
ローカルとリモートの両方でブランチを削除する場合は、3つの異なるブランチが関係していることに注意してください。
- ローカルブランチ
X
。
- リモートオリジンブランチ
X
。
origin/X
リモートブランチを追跡するローカルリモート追跡ブランチX
。

使用された元のポスター:
git branch -rd origin/bugfix
これは、彼のローカルリモートトラッキングブランチ のみを削除しorigin/bugfix
、の実際のリモートブランチは削除しませんでしbugfix
たorigin
。

その実際のリモートブランチを削除するには、
git push origin --delete bugfix

追加の詳細
次のセクションでは、リモートブランチとリモートトラッキングブランチを削除するときに考慮すべき追加の詳細について説明します。
リモートブランチを削除するためにプッシュすると、リモートトラッキングブランチも削除されます
X
を使用してコマンドラインからリモートブランチを削除git push
すると、ローカルのリモートトラッキングブランチも削除される ため、またはorigin/X
で廃止されたリモートトラッキングブランチを削除する必要はありません。ただし、とにかくやったとしても害はありません。git fetch --prune
git fetch -p
次のコマンドを実行して、リモートトラッキングブランチorigin/X
も削除されたことを確認できます。
# View just remote-tracking branches
git branch --remotes
git branch -r
# View both strictly local as well as remote-tracking branches
git branch --all
git branch -a
廃止されたローカルリモートトラッキングブランチオリジン/Xのプルーニング
(上記のように)コマンドラインからリモートブランチを削除しなかった場合X
でも、ローカルリポジトリには(現在は廃止された)リモート追跡ブランチが含まれていますorigin/X
。これは、たとえば、GitHubのウェブインターフェースから直接リモートブランチを削除した場合に発生する可能性があります。
これらの廃止されたリモートトラッキングブランチを削除する一般的な方法(Gitバージョン1.6.6以降)はgit fetch
、--prune
またはそれより短いもので実行すること-p
です。これにより、リモートに存在しなくなったリモートブランチの廃止されたローカルリモートトラッキングブランチがすべて削除されることに注意してください。
git fetch origin --prune
git fetch origin -p # Shorter
1.6.6リリースノート(強調私のもの)からの関連する引用は次のとおりです。
学習した「gitfetch」 --all
と--multiple
オプション、多くのリポジトリからフェッチを実行するオプション、および--prune
古くなったリモート追跡ブランチを削除するオプション。 これらにより、「gitremoteupdate」と「gitremoteprune」の必要性が少なくなります(ただし、「remoteupdate」や「remoteprune」を削除する予定はありません)。
廃止されたリモートトラッキングブランチの上記の自動プルーニングの代替
または、廃止されたローカルリモートトラッキングブランチをプルーニングする代わりにgit fetch -p
、またはフラグを使用してブランチを手動で削除するだけで、余分なネットワーク操作を回避できます。--remote
-r
git branch --delete --remotes origin/X
git branch -dr origin/X # Shorter
関連項目