SourceTreeのGit-Flowで必ずno-ffする

SourceTreeのGit-Flowで必ずno-ffする

GUIでGit操作ができるクライアントの一つSourceTreeですが、Git-flow機能を使うとコミット1個のfeatureブランチをマージするとき強制的にファストフォワードになるという妙な挙動に悩まされます。

参考:SourceTreeのGit-Flow機能は納得の行かない動作をする | 読書とプログラミングを中心とした覚書ブログ

2018/06/09: IT技術情報局様がよりよい解決策を提案しています(SourceTreeでGitflow使うときにも、デフォルト動作をno-ffにすることができたのでメモ)。以下のスクリプトを書き換える方法はバージョンアップなど意図しないタイミングで戻される恐れがあります。

これを強引に上書きするには、Git-flowファイルを編集するしかなく、%USERPROFILE%\AppData\Local\Atlassian\SourceTree\gitflow_local\gitflow\git-flow-featureの313行目に該当箇所があります。

    # merge into BASE
    git checkout "$DEVELOP_BRANCH"
    if [ "$(git rev-list -n2 "$DEVELOP_BRANCH..$BRANCH" | wc -l)" -eq 1 ]; then
        git merge --ff "$BRANCH"
    else
        git merge --no-ff "$BRANCH"
    fi

--ff--no-ffにすればファストフォワードでないマージが行われます。