git flow avhをうまく使う方法
概要
git flow avhというものを知っていますか?
git flowではできなかったbranchのrename, delete, rebaseができるようになったfork です。 元々のgit flowではbranchのdeleteやrebaseは直接gitコマンドを叩かなければいけませんでした。
git flow avhはbrewではデフォルトで拾われてなかった気がします。 ubuntu 18.04からはapt install git-flowとするとgit flowではなく、git flow avhがインストールされるようになったようです。
ただ、windows wsl2環境だとaptで入れたgit flow initのbranch prefixのdefaultが空文字列でめんどくさかった覚えがあります。
公式へのリンク
インストール方法
cloneしてbinのpathを通す
git clone -b master git@github.com:petervanderdoes/gitflow-avh.git
お得な使い方
git flow で作成したbrachを消したい時
git flow feature delete xxxxxx
git flow で作成したbrachをrenameしたい時
git flow feature rename xxxxxx yyyyyy
git flow で作成したbranchがリモートでコンフリクトしたので現在のdevelopからの枝としてrebaseしたい時
git merge develpよりもコンフリクト解消が楽なのでおすすめ。
git flow feature rebase xxxxx
githubのpullrequest reviewのフローと併用してgit flowをローカル環境で使っているときに、merge済みのブランチ自動削除
git fetch origin -u develop:develop master:master && git checkout develop && git fetch -p && for branch in `git branch -vv | grep ': gone]' | awk '{print $1}'`; do git branch -D $branch; done
↑の参考:
- git - How to pull into not-the-current-branch? - Stack Overflow
- git - Remove tracking branches no longer on remote - Stack Overflow
個人的に好きなfeatureの命名規則
git flow feature start <topic name>/id/<github issue number>
# その他
- jetbrainsのgit tool的なやつを使うと、merge, rebase時のコンフリクト自動解消できる
- ただmergeだと自動解消の精度が低いため、git flow rebaseを使うのが便利だよ。
※雑作成なので誤記があるかも、記事書く気力が