nanisore oishisou

Webエンジニアあるまさんのゆるふわ奮闘記。

git diffから除外したいファイルの指定方法

こんにちは。
自分のメモ代わりだから、さらっと書きますよー。

gulpでcssやらjsをコンパイルするとgit diffで余計なものがたくさん引っかかるのが嫌だ。
修正した箇所だけ見たい。
diff見ないでコミットとかしたくない。
そんなときに使えるコマンドが
git diff --diff-filter=M

修正があったファイルだけdiffするコマンドーだそうな。
他にもdiff-filterのオプションにはA (追加)、C (コピー)、D (削除)、R (リネーム)とかもあるらしいです。つ、使えるNE★
詳細はこちらの偉大なページをごらんください。

やったーこれで解決だぜ!と思ったのに、
all.css.map
みたいなmapファイルがまだひっかかる。

こんな大量の意味なし修正コードなんて見たくない(´・ω・`)
矢印押す指も疲れちゃうし。

そんなときは
プロジェクトのrootディレクトリに.gitattributesというのを作成し、
*.map -diff
みたいに追記してやればいいそうな。

ドキュメントのここを読むと
*.map binary
でもいいっぽいです。

この辺の記事に詳しく説明があった。
Git でバイナリファイルを扱うときの私的設定

こんなページもあった。
Laravelでプロジェクトを作成したらまずやることメモ

↑この人は/public/js/配下とかにはコンパイル前のファイルは絶対入れないことにしてるっぽいけど、私はbrowserifyコンパイルしたのを、さらにマージさせてるからgitignoreとかできない。
cssコンパイル後にマージしてる。

コンパイル後のマージ用ファイルをresources/assets/配下の別ディレクトリに入れればいんじゃね?
という声が聞こえてきそうだ。
でも、なんとなくそれをやると、「やっぱマージ前のやつ読み込んで作業したい。」とか、ベンダーファイルをマージしないで単体で読み込ませたいとか、そんな融通がきかなくなりそうな気がする。

ということで、私は/public/js/配下はgitignoreせず、手動でつけたりはずしたりできるコンパイル後のファイル群を入れることにする。

*.map binary
/public/build/**/* binary
を設定しちゃえば
git diff --diff-filter=M
する必要もあまりなくなる気がする。

あー今日も超寒い。会社におこたスペース作ってくれないかなぁ。
おこたでぬくぬくしながらコーディングしたいベル子でした。