1. daimatz

    Posted

    daimatz
Changes in title
+.gitignore ファイルを生成するサービス gitignore.io
Changes in tags
Changes in body
Source | HTML | Preview
@@ -0,0 +1,138 @@
+.gitignore ファイルを手動で書くのは面倒だし、漏れもありそうです。 GitHub の人気プロジェクトの1つである [github/gitignore](http://github.com/github/gitignore) にはさまざまなプロジェクト・環境に合わせた.gitignore ファイルのテンプレートが置いてあり、ここを参考にファイルを作る人も多いでしょう。
+
+[gitignore.io](http://gitignore.io) はこのプロジェクトのテンプレートを Web から見やすくした感じのサービスです。開発環境に使うものを指定すると自動で .gitignore ファイルのテンプレートを生成してくれます。
+
+これをブラウザから使うのもいいのですが、 API が用意されているのでそこから使うこともできます。つまりターミナルから以下のようにコマンドを叩くと OSX と Linux で開発する Ruby のプロジェクトにあわせた .gitignore テンプレートを生成してくれます。
+
+```
+$ curl http://gitignore.io/api/osx,linux,ruby
+# Generated by http://gitignore.io
+
+### OSX ###
+.DS_Store
+.AppleDouble
+.LSOverride
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+### Linux ###
+.*
+!.gitignore
+*~
+
+### Ruby ###
+*.gem
+*.rbc
+.bundle
+.config
+coverage
+InstalledFiles
+lib/bundler/man
+pkg
+rdoc
+spec/reports
+test/tmp
+test/version_tmp
+tmp
+
+# YARD artifacts
+.yardoc
+_yardoc
+doc/
+```
+
+さらに環境指定を省略して API を叩くと
+
+```
+$ curl http://gitignore.io/api/
+gitignore.io help:
+ list - lists the operating systems, programming languages and IDE input types
+ :types: - generates .gitignore files for types of operating systems, programming languages or IDEs
+```
+
+このように簡単なヘルプまで表示してくれます。となればこの API を叩くコマンドを定
+義して CUI から使おうという発想に至りますね。
+
+http://gitignore.io/cli に例があるのですが、こういうコマンドはたまにしか使わないので忘れやすい。そこでいっそのこと git のサブコマンドとして使えるようにするのが良いと思います。 ~/.gitconfig ファイルの`[alias]`セクションに次のように書いておきます。
+
+```
+[alias]
+ ignore = !"f() { local s=$1; shift; \
+ while [ $# -gt 0 ]; do s="$s,$1"; shift; done;\
+ curl "http://gitignore.io/api/$s"; }; f"
+```
+
+すると、次のようにして 簡単に .gitignore ファイルを生成できるようになりました。
+
+```
+$ git ignore osx linux ruby > .gitignore
+
+$ cat .gitignore
+# Generated by http://gitignore.io
+
+### OSX ###
+.DS_Store
+.AppleDouble
+.LSOverride
+Icon
+
+
+# Thumbnails
+._*
+
+# Files that might appear on external disk
+.Spotlight-V100
+.Trashes
+
+### Linux ###
+.*
+!.gitignore
+*~
+
+### Ruby ###
+*.gem
+*.rbc
+.bundle
+.config
+coverage
+InstalledFiles
+lib/bundler/man
+pkg
+rdoc
+spec/reports
+test/tmp
+test/version_tmp
+tmp
+
+# YARD artifacts
+.yardoc
+_yardocp
+doc/
+
+$ git ignore
+gitignore.io help:
+ list - lists the operating systems, programming languages and IDE input types
+ :types: - generates .gitignore files for types of operating systems, programming languages or IDEs
+
+$ git ignore list
+finale,opencart,sdcc,delphi,coq,magento,lemonstand,nanoc,rhodesrhomobile,opa,
+ocaml,turbogears2,r,drupal,compass,concrete5,ruby,lilypond,wordpress,c++,
+actionscript,joomla,appceleratortitanium,sugarcrm,visualstudio,tasm,android,
+python,cakephp,yii,forcedotcom,kohana,objective-c,unity,waf,bancha,seamgen,qt,
+cmake,leiningen,sketchup,latex,rails,typo3,maven,clojure,haskell,c,jboss,
+codeigniter,erlang,autotools,go,expressionengine,textpattern,java,zendframework,
+scala,perl,qooxdoo,playframework,plone,gwt,cfwheels,jekyll,symfony,grails,
+symfony2,dart,node,symphonycms,lithium,eagle,django,jython,target3001,fuelphp,
+gcov,oracleforms,freepascal,monotouch,laravel,codekit,dotsettings,
+elasticbeanstalk,joe,openfoam,cloud9,meteor,prestashop,vvvv,justcode,komodoedit,
+linux,intellij,sublimetext,osx,xilinxise,windows,rubymine,modelsim,tags,sbt,
+flexbuilder,pycharm,eclipse,textmate,phpstorm,quartus2,netbeans,espresso,
+archives,redcar,sass,cvs,vim,monodevelop,matlab,virtualenv,svn,emacs,mercurial
+```