回答:
次のようなことをした場合
git branch -d -r remote_name/branch_name
ローカルチェックアウトのみを削除します。このコマンドはリモートリポジトリに対して何も実行しないため、引き続き表示されます。
解決:
git push origin :branch_name
リモートブランチを削除します( ':'に注意してください)。
git branch -d branch_name
ローカルチェックアウトを削除します。
(参考)
git push <remote> --delete <branchname>
、リモートブランチの削除にも使用できることも知っておくと便利です。
削除されたのがリモートリポジトリ内のブランチであり、すべてのローカルリモート追跡ブランチを一度に更新したい場合は、
$ git remote prune <remotename>
特定のリモートの古いリモート追跡ブランチ(つまり、リモートリポジトリで削除されたブランチに続くブランチ)をすべて削除します。
git remote
ドキュメントを参照してください。
git fetch
なぜですか?
git gc
オブジェクトと参照をパックし、参照されていないオブジェクトを削除します(安全マージンを確保)。
git remote update --prune
すべてのリモートのブランチを更新し、新しいブランチを追加し、削除されたブランチを削除する必要があります。
編集:リモート更新コマンドは、基本的にリモート上のブランチのリストをフェッチします。この--prune
オプションは、リモートに存在しなくなったブランチを指すローカルリモートトラッキングブランチを削除します。
新しいリモートブランチを表示する場合にも役立ちます。
git fetch --all
-r
と-d
フラグを組み合わせて、リモートブランチを削除できます。