Git

ブランチの変更をgrepする

これはなに

gitでソース変更の差分を良い感じにgrepする方法のメモ

やりたかったこと

リファクタリングの一貫で使われなくなった画面を削除した。
画面のテンプレートではi18nの言語キーが埋め込まれているのだけど、使われなくなった言語キーも削除したい。

ブランチの変更をgrepする

ながれ

  1. 派生元ブランチのリビジョンをとってくる
  2. そのリビジョンで git diff る

派生元ブランチのリビジョンをとってくる

git diff で差分を出したい。作業ブランチの派生元のリビジョンをとってきて、作業ブランチを差分だせばいいじゃん。


# 作業ブランチに切り替えておく
$ git branch --contains=HEAD
feature/作業ブランチ

# 派生元のリビジョン
$ git merge-base develop HEAD
aaaaaaaaabbbbbbbbbbbcccccccccccddddddddddd

そのリビジョンで git diff る


$ git diff aaaaaaaaabbbbbbbbbbbcccccccccccddddddddddd HEAD

diff ったら削除された行だけgrepする

$ git diff aaaaaaaaabbbbbbbbbbbcccccccccccddddddddddd HEAD | egrep '^-' 

まとめ:作業ブランチの差分をワンライナーで

$ git diff `git merge-base develop HEAD` HEAD |grep hoge