gitignoreのあれ
gitignoreのあの逆を書きたいんだよね!
(いや意味わからん)
と思った人。僕も自分で言っておいて何を言っているかわかりませんでした。
つまり
index.html
style.css
script.js
の3つのファイルがあってgitignoreならstyle.cssだけをignoreできるんです。
でも逆にstyle.css以外をignoreしたいってなった時は今回であればindex.html、script.jsの2つをignoreしますよね?
3つのファイルならいいんですけどこれが100個あったら死ぬほど面倒じゃないですか?ignoreの逆書きたい!ってなりますよね。
今回の事例としてはwordpressの構築をしているときに遭遇しました。
いつもならthemesの中の自作テーマの中にgit入れればいい感じでした。それ以外ほとんど触りませんしね。バージョン管理する必要がありません。
が、今回ルートフォルダにwpというフォルダがあり、その中にwordrpressが入っていました。
そしてその階層にcss,jsが置いてあったのです。(自分で置いたのではありません。)
図にすると
root/wp/wpの中身
root/js
root/css
です。この階層にgitを置くとwordpressのシステム全部プッシュすることになり、コミットの数が多くなって管理も大変ですし、確実にスマートではありません。
ググると
gitホワイトリストという書き方がありました。これを使うと自分がやりたかったことを実現できます。
[code]
すべてをignore
*
*/
すべてのディレクトリをホワイトリストに追加する
!*/
ホワイトリストに入れたいファイルを戸別に許可する
!.gitignore
!css/*
!img/*
!js/*
!/wp/wp-content/themes/テーマの名前/*
[/code]
こんな感じです。
・まず全部のファイルとフォルダをignoreして
・全てのディレクトリをホワイトリストに入れる
・個別にホワイトリストに入れたいファイルをかく
・同階層にないけどホワイトリストに入れたいファイルorフォルダは一番下のように書けます。
終わり
知ってそうで知らなかった知識。
ああ。なんかそんなことを話している記事あったな。どこの会社だっけな?レベルで覚えておいてください。マーベリックスです。高品質なデザイン&コーディングを行う湘南にあるクールなweb制作会社です。