Help us understand the problem. What is going on with this article?

.gitignoreを自動的に作る(gibo, gitignore.io を使う)

More than 1 year has passed since last update.

.gitignoreを自動的に作る(gibo, gitignore.io を使う)

.gitignore は自動生成して、自分で削った方が絶対楽なので、少し調べた結果をまとめておく。

どちらを使ってもいいとは思うけど、個人的には

  • gibo
    • gitリポジトリをたくさん作ってたくさん.gitignore作るとか、Macとか
  • gitignore.io
    • 普段からgitリポジトリあまり作らない、Windows環境だったり、いろいろインストールするのがめんどくさい(または出来ない)

って使い分けができそうだなと感じた。

.gitignore自動生成サービス

ザクっと調べた所、下記の2つが見つかる。

  • gibo (ツール)
  • gitignore.io (webサイト)

gibo

  • コマンドラインツール
  • macならbrew導入して brew install gibo
  • windows でも使えるらしいことを最近知った(試してない)

    • scoop導入していけるみたいですね
    • リポジトリ引っ張ってきてパス通せばwindowsでもmacでもいけそう
  • 言語名、環境名での指定が可能

    • gibo java とか gibo xcode とか
    • 組み合わせも可能。 gibo vim python とか
  • 実際使うときは .gitignore ファイルにへの書き出しが必要

    • gibo vim go > .gitignore って感じ
  • デメリットとしては gibo -u をしないと最新版の.gitignoreが導入されないことと、brewとかインストールしないといけないところでしょうか?

    • githubでリポジトリのzipを持ってこれるけど、そのタイミングでの最新版しか持ってこられないので… 微妙かなあ(git入れてgit cloneすれば良いけど、それならbrew入れれば良くないですかって話になりそう)
    • gibo自体のアップデートと、.gitignoreのテンプレートリポジトリをアップデートするっていう2つのアップデートがあるのが若干罠かも。

余談

公開されているコードを見た感じだと、github公式のgitignoreリポジトリを引っ張ってきて、該当するものをローカルで探すみたいな形になっている。

ローカルに.gitignoreのリストがあるので、オフラインで使えるというのはメリットなのかもしれない。

gitignore.io

  • webサイト
  • https://www.gitignore.io/
  • 文字列を選択して入れると良さそう。
  • 検索ワードは複数使えます

gitignore_io_-_Create_Useful__gitignore_Files_For_Your_Project.png

  • githubでソースコード公開されてる(今知った)
  • githubのリポジトリにも書いてあるけど、curl -L -s https://www.gitignore.io/api/java みたいな形で持ってこれる
  • bashrcとかに関数用意しておくのが無難かなあ

  • デメリットとしてはWebに接続していないと使えないことでしょうかね。Webに表示されているものをコピペするのはめんどくさいので、curlとかで持って来なきゃならないのもめんどくさそう。

ちょっとだけ頑張って shell の関数を書いてみた。 .zshrc に書き込んだので、シバンは省略している。 create_gitignore python pycharm とかで使えるはず。当方はMacOS上でzshを利用しているので、他のOSを使っている方はオプション等の動作の違いにご注意を。

create_gitignore() {
    # argv length check
    if [ -z $1 ]; then
        echo 'Usage: git_ignore arg1 arg2 arg3 ...'
        return
    fi

    # overwrite check
    flag='y'
    if [ -e '.gitignore' ]; then
        printf 'Are you overwrite .gitignore ? [y/N]: '
        read flag;
    fi

    # download .gitignore
    if [ $flag = 'y' ]; then
        s=$(echo $@ | tr ' ' ',')
        curl -f https://gitignore.io/api/$s -o .gitignore
        echo "create .ignore file for: ${s}"
    fi
    echo 'finish.'
}

余談

検索後の結果を見てもパット見なぜリダイレクトしているのかわからなかったので、curlコマンドで調べてみる。

[08/05 16:27:27] $ curl -L --max-redirs 0 -D - https://www.gitignore.io/api/java
HTTP/1.1 200 OK
Date: Sat, 05 Aug 2017 07:28:38 GMT
Content-Type: text/plain; charset=utf-8
Content-Length: 378
Connection: keep-alive
Set-Cookie: __cfduid=dec3a3a3464c007b70d8e098d0b9647c11501918117; expires=Sun, 05-Aug-18 07:28:37 GMT; path=/; domain=.gitignore.io; HttpOnly
Via: 1.1 vegur
Server: cloudflare-nginx
CF-RAY: 38980a689f452e15-NRT

(後略)

普通に取れている?
プロトコルをhttpsからhttpに変更してみる。

[08/05 16:31:49] $ curl -L --max-redirs 1 -D - http://www.gitignore.io/api/java
HTTP/1.1 301 Moved Permanently
Date: Sat, 05 Aug 2017 07:31:54 GMT
Transfer-Encoding: chunked
Connection: keep-alive
Cache-Control: max-age=3600
Expires: Sat, 05 Aug 2017 08:31:54 GMT
Location: https://www.gitignore.io/api/java
Server: cloudflare-nginx
CF-RAY: 38980f37f6ab2e0f-NRT

HTTP/1.1 200 OK
Date: Sat, 05 Aug 2017 07:31:55 GMT
Content-Type: text/plain; charset=utf-8
Content-Length: 378
Connection: keep-alive
Set-Cookie: __cfduid=d8be36077fc78404ce4b267050b14f09c1501918314; expires=Sun, 05-Aug-18 07:31:54 GMT; path=/; domain=.gitignore.io; HttpOnly
Via: 1.1 vegur
Server: cloudflare-nginx
CF-RAY: 38980f3b2a2e2e27-NRT

(後略)

どうやらhttpsに移行してるらしい?
qiitaの過去記事を見てみるとhttpとなっているものへアクセスしているものも見られた。

httpsを指定した場合はリダイレクトしてないけど、将来的にドメイン変わる可能性とかも考慮して、githubのREADMEにはそう書いてあるんだろうか。

ローカルにインストール不要なのはいいかなと思う。giboみたいにローカルでリポジトリを持つ必要性もないので、不要なファイルを持たなくてもいいのは良いかも。

参考資料

qiitaの記事を読んで、書いてみようという気持ちになったので、偉大な先人の皆様に感謝しています。

未検証

さっきググったら、こんなのも見つけたって話。

終わりに

メモ書き程度ですが、両方について書いているものが少なかったので書いてみた。
どうしてgitignore.ioにcurlコマンド使ったときにリダイレクトが必要なのはなぜか、とか考える機会にもなり、curlコマンドに関しての知見を良い機会にもなった。

初投稿終わり。

最近思うこと

giboで以前は入れていたが、最近はGithubならデフォルトで使用する言語を選んで作ってしまうので、コマンド自体をあまり使わないようになってきた感じがする。

それとWebページで gitignore.io を調べて、必要そうなものをコピペしてカスタマイズ… みたいなことをやるようになった。

そもそもよく使う言語と開発環境は、自分の環境であればglobalの .gitignore に入れてしまうとか、それをチームで共有しとくとかの解決になりそう。

なので、インストールするのってどうなんだろうなという気持ちになりつつある。

yumechi
えんじにゃー。ぷりぷりかしこま。Pythonしかできない。
https://namonakimichi.hatenablog.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした