原文: How to Delete a Git Branch Both Locally and Remotely

通常、Git ブランチの削除は簡単です。この記事ではローカルまたはリモートの Git ブランチを削除する方法を学びます。

TL;DR バージョン

// ローカルのブランチを削除する場合
git branch -d localBranchName

// リモートのブランチを削除する場合
git push origin --delete remoteBranchName

ブランチはいつ削除するか

Git リポジトリに複数のブランチがあるのは普通のことです。ブランチは、新しいコードをメインのコードベースから隔離した状態で異なる機能や修正の作業をするための良い方法です。

リポジトリにはメインのコードベース用の main ブランチがあることが多く、開発者は異なる機能の作業をするために別のブランチを作成します。

多くの場合、ある機能の作業が完了したら、そのブランチを削除することが推奨されます。

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

Git では現在のブランチを削除することはできません。そのため、削除対象以外のブランチに切り替える (チェックアウトする) 必要があります。

例: git checkout main

ブランチの削除は git branch -d <branch> で実行します。

例: git branch -d fix/authentication

-d オプションは、削除対象のブランチがリモートブランチにプッシュおよびマージ済みの場合のみ削除を実行します。プッシュ、マージされていないブランチを強制的に削除したい場合は、代わりに -D を使用します。

これでローカルのブランチが削除されました。

リモートのブランチを削除する

こちらがリモートのブランチを削除するコマンドです。

git push <remote> --delete <branch>

例: git push origin --delete fix/authentication

これでリモートのブランチが削除されました。

こちらの、より短いコマンドでもリモートブランチを削除できます。

git push <remote> :<branch>

例: git push origin :fix/authentication

下記のエラーが発生した場合、すでに他の誰かがそのブランチを削除した可能性があります。

error: unable to push to unqualified destination: remoteBranchName The destination refspec neither matches an existing ref on the remote nor begins with refs/, and we are unable to guess a prefix based on the source ref. error: failed to push some refs to 'git@repository_name'

下記のコマンドであなたのブランチ一覧を同期してみましょう。

git fetch -p

-p フラグは "prune" (取り除く) を意味します。フェッチ実行後、リモートに存在しないブランチは、ローカルからも削除されます。

このチュートリアルがお役に立ちましたら、ぜひ周りにも共有してください😉

英語版ではこのような記事を 8,000 件以上無料で公開しています。日本語、他言語も順次対応中です。