error: Cannot delete the branch 'ブランチ名' which you are currently on.
- 原因 : カレントのブランチを削除しようとしている
- 対応 : 削除対象外のブランチに切り替えてから削除する
ブランチを切り替えて削除する
$ git checkout {削除対象以外のブランチ}
$ git branch -d {削除対象のブランチ}
error: The branch 'ブランチ名' is not fully merged. If you are sure you want to delete it, run 'git branch -D ブランチ名'.
- 原因 : マージされていないブランチを削除しようとしている
- 対応 : マージして削除する or 強制的に削除する
強制的に削除する
$ git branch -D {ブランチ名}
error: branch 'ブランチ名' not found.
- 原因 : ローカルにそんなブランチはない
- 対応
- (誤記)ブランチ名を見直す
- (リモートにある)リモートを確認してリモートのブランチを削除する
リモートを確認してリモートのブランチを削除する
$ git branch -r | grep {ブランチ名}
origin/{ブランチ名}
$ git push -d origin {ブランチ名}
fatal: --delete doesn't make sense without any refs
$ git push -d :feature/UBS_KENPO-6890
fatal: --delete doesn't make sense without any refs
- 原因 : 引数の指定方法を誤っているから
@k-takata さんに教えていただきました。
git push origin :{ブランチ名} は git push -d origin {ブランチ名}
が使えなかった頃の古いやり方です。push -d
が使える環境であれば、:{ブランチ名}
を使う必要はないでしょう。
refs
というのは、ブランチ名やタグ名などを指しています。
git push -d {リポジトリ} {ブランチ名}
と指定すべきところ、引数を1つしか指定しなかったため、{ブランチ名}
が無いというエラーです。
- 対応 : 書き方を変える
$ git push -d origin {ブランチ名}
Username for 'URL': {ユーザ名}
To {URL}.git
- [deleted] {ブランチ名}
warning: deleting branch 'ブランチ名' that has been merged to 'refs/remotes/origin/feature/ブランチ名', but not yet merged to HEAD.
- 原因 : リモートに削除対象のブランチがある(この時点ではローカルしか削除されていない)
- 対応 : 何もしない(ローカルだけ削除) or 削除をプッシュする(リモートも削除しちゃう)
削除をプッシュする
$ git push origin :{ブランチ名}