Ansatzの備忘録

勉強したことあるいはふと思い立ったこと

シェルワンライナー160本ノック問題146

問題146 ずっとマージされていないブランチを調べる

言われればわかるがやってみろと言われると全然できないというよくあるパターンに出くわした。初見ではできそうで全くできない、もどかしさがある。

解答例は

git branch -r --no-merged | while read branch; do git log -1 --since=$(date -d '1 month ago' +%F) $branch | grep -q . || git -P log -1 --pretty=format:"%cd | %an | $branch%n" --date=short $branch ;done

となる。まずマージされてないブランチを出力して、それを再びgitコマンドに与えてマージ日時のログを出し、1ヶ月以上マージされていないものを洗い出している。