git-flowのgitコマンドを確認する方法

職場でgit-flowを使うことになったので、git-flowコマンドの際に投げられるgitコマンドを把握するためソースコードを眺めてました。

gitflow

gitflow-commonファイルに以下の様な記述があり、show_commandsフラグを立てれば標準エラー出力にgitコマンドが出力されます。

  • gitflow-common
git_do() {
  # equivalent to git, used to indicate actions that make modifications
  if flag show_commands; then
    echo "git $@" >&2
  fi
  git "$@"
}

このフラグはgit-flowファイルのmain関数内で設定されており、以下のように変更すれば常にgitコマンドが表示されるようになります。編集するファイルはぼくの環境では/usr/local/bin/git-flowでした。

  • git-flow
#DEFINE_boolean show_commands false ’show actions taken (git commands)’ g
DEFINE_boolean show_commands true ’show actions taken (git commands)’ g

オプション引数が使えない場合がある

上のソースコードを見るとgオプションをつければいいじゃないかと思ったのですが、動作がおかしくなる場合がありコードを追ってみました。結論だけ言うとgit-flowのバグによりオプション引数が有効にならない場合があります。すでにpull requestがあがっていたので参照しておきます。

https://github.com/nvie/gitflow/pull/232

従って以下のコマンドでオプション引数を使うことはこのsubmitが承認されるまでは控えたほうがよさそうです。(既に4ヶ月放置されているようですが、、)

  • git flow feature start
  • git flow hotfix start
  • git flow release start

そのためデフォルトでshow_commandsをtrueにするやり方を採用することにしました。