プログラミングスクールで課題の提出物をGitHubにリポジトリを作って提出する場面があり、これが数ヶ月に一度とかその程度の頻度であれば、GitHubが公開しているリポジトリを見に行って、ignoreしたい言語のテンプレートを探してコピペとかしてもいいかなと思う。
しかし、結構な頻度で新しいリポジトリを作って提出するのでさすがにめんどくさい。
いや、そうでなくてもめんどくさい。普通にめんどくさいよ。
そんなことを思って、楽に.gitignore
ファイルを作る方法はないものか、我々はインターネットと言われるアマゾンの奥地(以下略)。
gibo
というシェルスクリプトのツールを見つけた。
github/gitignore: A collection of useful .gitignore templatesで公開しているテンプレートを参照して自分の.gitignore
に突っ込んでくれるらしい。
使い方 ✏️
公式のREADMEに詳しく書かれているから、書かれているとおりにインストールすれば使えるようになる。
が、自分の環境ではインストールしてそのままgibo --version
とかしても動かなかった。
もしかしたらこの時点でzshを再ログインすればよかったのかも知れない…なんて、今になって思うけど再ログインしても動かなかったときのためにメモとして対処法を残しておく。
インストールしてもcommand not found
とかで動かないときの対処法
これについても公式のREADMEに書かれている。
Copy gibo-completion.zsh somewhere in your $fpath. The convention for autoloaded functions used in completion is that they start with an underscore, so I suggest you rename it to _gibo.
gibo-completion.zsh
をコピーして使ってくれって書いてある。
書かれている通り素直にインストールされたパッケージからcp
なりでコピーしても良かったけど、なんとなく同じファイルが2つ存在するのは気持ち悪いなと思った。(お絵描きや同人誌の漫画のデータファイルは平気で2つ以上残してることは完全に棚上げ)
$fpath
のどこかしらに、パッケージの中にあるgibo-completion.zsh
にシンボリックリンクを作れば使えるっぽいなと考えた。
echo $fpath
でコマンドのシンボリックリンクがまとまってそうな場所を探す。
/usr/local/share/zsh-completions
にyarnとかbrewでインストールしたツールのコマンドがまとまってそうだったので、ここにシンボリックリンクを作成した。
/u/l/s/zsh-completions ❯❯❯ % ln -s ../../Cellar/gibo/2.2.4/share/zsh/site-functions/_gibo _gibo # zshの再ログイン ❯❯❯ % exec $SHELL -l
シンボリックリンクを作成したら、zshの再ログインを実行して、試しにgibo --version
してみる。
❯❯❯ % gibo --version gibo 2.2.4 by Simon Whitaker <sw@netcetera.org> https://github.com/simonwhitaker/gibo Fetches gitignore boilerplates from https://github.com/github/gitignore Usage: gibo [command] Example: gibo dump Swift Xcode >> .gitignore Commands: dump BOILERPLATE... Write boilerplate(s) to STDOUT help Display this help text list List available boilerplates root Show the directory where gibo stores its boilerplates search STR Search for boilerplates with STR in the name update Update list of available boilerplates version Display current script version
よしよし、ちゃんと動きました。
出てきたExampleを参考に使ってみる。
あらかじめtouch .gtignore
して、ファイルを作っておく。
❯❯❯ % gibo dump Node >> .gitignore
cat
でちゃんと無視ファイルが追加されているか確認してみると
❯❯❯ % cat .gitignore ### https://raw.github.com/github/gitignore/218a941be92679ce67d0484547e3e142b2f5f6f0/Node.gitignore # Logs logs *.log npm-debug.log* yarn-debug.log* yarn-error.log* lerna-debug.log* # Diagnostic reports (https://nodejs.org/api/report.html) report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
お〜〜、入っとる入っとる。
これでgit init
する度にコピペしたりとかいうめんどい作業がなくなる。
めでたしめでたし。
📝 参考
gibo
にたどり着く過程で参考にした記事 🙏