Tech_Kazu.log

.gitignore反映RTA ~たぶんこれが一番早いと思います~

2020/09/11

カズ之助
最近のマイブームはトイレにパソコンを持ち込んでn時間Wikipediaを読むことです
Twitter GitHub

お久しぶりです!!!!!!!!!!!

こんにちは!!!!!!!!!!!!!!!!!!!!!!!!(クソでか挨拶)
みんな大好き、カズ之助くんです。
みなさん!突然ですが、こいつ、見覚えあるでしょう??? 2020 09 11 00 18 58 そう!みんな大好き.gitignoreちゃん、今日はこの子のお話です!

.gitignoreってなんだぁ!?

さて、もしかしたら.gitignoreについて馴染みのない方もいるかもしれません!
そこで!カズ之助くんは優しいので、その方に向けて簡単に説明します!間違えてたらカズ之助くんに優しく教えてくだしあ……
厳しくしちゃだめだよ?泣いちゃうからね?

この.gitignoreさん、ざっくり説明すると、Gitで追跡しないファイルをずらずらーっと書き連ねたものです!
実際にどんな感じで書かれているか見てみましょう!!

# 追跡しない拡張子
*.css
*.html
*.js

# 追跡しないファイル
workspace.json

こんな感じに$git add時や$git commit時に無視するファイル拡張子や無視するファイルを書き連ねていくファイルになります!
Gitさん(超優秀)が、ステージング($git addの作業)とかの作業をするときに.gitignoreを見て「このファイルはaddしなくてヨシ!(現場猫並感)」としてくれるんです!有能ちゃんですね!

.gitignoreを読んでくれない!

さて、そんな超有能なgitちゃんですが、.gitignoreを読んでくれないときがあります……
一体どんなときかというと、(僕の環境では).gitignoreを作った直後や、編集した直後などに読んでくれないことが多いです……
Gitチャン、どうして僕🙋‍♂️の愛💓💗の手紙(ルビ:ラブレター)💌💖💕を読んで👀くれない😢のカナ❓😅

さて、みなさんならこんなときどうしますか???

  • 普通にgitのキャッシュを削除してからコミットする?
  • それとも、.gitディレクトリを消し飛ばして$git initする? ←これすき
  • それとも毎回gitignore 反映とかでGoogle検索してる? ←これぼく

面倒くさくなってきちゃった

とりあえず僕はコマンドなぞまったく覚えるつもりが無かったため、毎回google検索していたんですが、いい加減面倒くさくなってきたんですよね
「じゃあコマンド覚えろや」ってね。わかる。なんで覚えないんだろうね。アホなのかな?

とにかく面倒くさくなって仕方なくなってしまったので、調べなくて済むように.gitignoreを更新したら実行する簡単なシェルスクリプトを組むことにしました。
シェルスクリプト、みなさんわかりますか?僕は大学入ってから「そんなのもあるのか〜」って学びました。

まぁ一回作っちまえば後は更新するたびにそのシェルスクリプトを叩けばいいので、カズ之助くんはコマンドをいちいち調べなくていいし、コマンドを覚えなくて済むので一石二鳥なんですよね。
まぁ社会人になってgitのキャッシュ削除のコマンドを覚えていないのは流石にどうなのかというのもあるので覚えますけど。いずれ、ねぇ。覚えますとも。

シェルスクリプトを作っていこう

さて、カズ之助くんがシェルスクリプトに求める条件を書いていこう

  1. gitのキャッシュを消してくれること
  2. $git addしてくれること
  3. $git commitしてくれること
  4. $git pushしてくれること
  5. どのディレクトリからでも呼び出せること

うん。簡単だね。そうだね。

まぁ簡単なのでさっさと書いていきましょう

git rm -r --cached .
git add .
git commit -a -m gitignore編集
git push

はい。コマンドを列挙しただけですね。 2020 09 12 23 36 58 簡単すぎますね。サルでも書くだけならできそう。

これを適当な名前(たとえばgitignoreとか)で保存します。(これが呼び出し時の名前になります)
で、それをパスの通っているディレクトリ直下においておきましょう。

おけた?いいわね。 そしたらパーミッションを適当に変更していきますわよ。 セキュリティガバガバ兄貴はこう変更してくださいね。

$ chmod 777 ./保存した名前
パスの通し方(Linux, Mac向け:zsh解説)

さて、「パスが通ってないよぴえんぴえん🥺🥺🥺🥺🥺」という方にパスの通し方を説明します。
まず、ホームディレクトリにある.zshenvというファイルを任意のテキストエディタで開きます。なければ作っちゃっておkです。
で、.zshenv内に以下の行を追記しましょう。

export PATH=ここにシェルスクリプトが入っているディレクトリのパス:$PATH

書けましたね? 2020 09 12 23 50 04 (これの10行目が今回設定したパスです)

そしたらCtrl + Sもしくはcommand + Sを押して保存しましょう。もしあなたがvimを使っているのならばescを押してコマンドモードに入った後にZZ(大文字z2回)で保存して脱出できます。
は?emacs?知らんわ。rcファイルにemacsと入力したらvimが起動するようにエイリアスでも書いとけ。

さて、保存したら再読込させましょう。

$ source ~/.zshenv

これをターミナルに打ち込んでEnterです!

うまくいくかな?

さて、おまちかね確認のお時間です。
まぁキャッシュ消してaddしてcommitしてるだけなのでgitignoreを別に書かなくてもオッケーです。 2020 09 12 23 57 50 適当な、どうなっても別に構わない私用のリポジトリで行いましょう。
今回は私がdotinstallで適当に書いたコードのリポジトリでやってみることにしました。(ちょうどいい感じに変更があったので)

2020 09 12 23 59 18 実行!
パッと見は正常に終わっていそう…??

GitHubにて確認してみましょう 2020 09 13 00 00 12

あぁ^〜たまらねぇぜ。
どうやらうまくいっているようです。やったね。
これでいちいち調べずにめっちゃ簡単にgitignoreを反映させられますわね。うれしいね。

編集後記

ここまで読んでくれたみんな!圧倒的、感謝!(カイジ)
さて、みなさんこれをご覧ください。 2020 09 13 00 04 41 クソガキ「あっれれ〜?おっかしいぞぉ〜?」
なんでこれ大文字になるんですかねぇ……
直し方と原因わかる人Twitterで教えてくだしあ……
修正次第記事にしまスゥゥ……

参考サイト

カズ之助
最近のマイブームはトイレにパソコンを持ち込んでn時間Wikipediaを読むことです
Twitter GitHub