Web Analytics

こつこつエンジニア

現役アプリ開発者によるIT系特化ブログ

【Sourcetree】ブランチ削除で怒られた時の対処

f:id:madai21:20211019225835j:plain

はじめに

Sourcetreeでブランチの削除を行うと、以下のように「Cannot delete branch・・・」という内容のエラーが出たり、
f:id:madai21:20211019221351p:plain

The branch ・・・ is not fully merged. If you are sure you want to delete it・・・」という内容のエラーが出て、ブランチの削除ができない場合があると思います。
f:id:madai21:20211019222458p:plain


今回はそれぞれのエラーでの対処内容について書きたいと思います。

環境

この記事はSourcetree3.4.6での確認内容となります。
Sourcetree3.4.6は以下の場所から取得できます。
www.sourcetreeapp.com

なぜこのようなエラーがでるのか?

Cannot delete branchの場合

このケースはカレントブランチを削除しようとしていることが原因で怒られています。
対処には以下の1パターンが考えられます。


  • カレントブランチを削除するブランチ以外に変更してからブランチを削除する

  • is not fully mergedの場合

    このケースは削除しようとしているブランチが他のどのブランチにもマージしていないことが原因で怒られています。
    対処には以下の2パターンが考えられます。


  • 削除しようとしているブランチを他のブランチにマージをした後、ブランチを削除する

  • ブランチを強制削除する

  • 対処

    Cannot delete branchの場合

    [パターン1]カレントブランチを削除するブランチ以外に変更してからブランチを削除する

    まずはツリー上で削除対象ブランチ以外のブランチ名をダブルクリックしてカレントブランチを切り替えます。
    f:id:madai21:20211019223502p:plain


    切り替わった後、削除ブランチを削除しましょう。
    今度はエラー出ずに削除できるはずです。
    f:id:madai21:20211019223945p:plain

    is not fully mergedの場合

    [パターン1]削除しようとしているブランチを他のブランチにマージをした後、ブランチを削除する

    マージボタンを押します。
    f:id:madai21:20211019224402p:plain


    削除対象ブランチの最新コミットを選択し、OKボタンを押しましょう。
    f:id:madai21:20211019224456p:plain


    これで他のブランチにマージできました。
    削除ブランチを削除しましょう。
    今度はエラー出ずに削除できるはずです。
    f:id:madai21:20211019224706p:plain

    [パターン2]ブランチを強制削除する

    ブランチを削除する際に出るダイアログで「削除を強行」にチェックを付けた状態でOKボタンを押します。
    するとエラー出ずに削除できます。
    f:id:madai21:20211019224942p:plain

    おわりに

    これらの対処法でブランチを削除できましたでしょうか?
    他のブランチに確実にマージしたことを確認してからブランチを削除すると安全だと思います。