Gitでソースコードを管理する際、必ず必要になるのが.gitignoreでしょう。これがないと余計なビルドファイルやログファイル、OSの隠しファイルなどが入り込んでしまいます。かといって、.gitignoreの設定をプロジェクトごとに個別に設定するのは面倒なものです。 そこで使ってみたいのがgiboです。プログラミング言語に合わせた.gitignoreを生成してくれます。

giboの使い方

giboはdumpコマンドを使って出力します。言語や環境は複数指定できます。

$ gibo dump Swift Xcode
### https://raw.github.com/github/gitignore//Swift.gitignore

# Xcode
#
# gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore

## Build generated
build/
DerivedData/

## Various settings
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
xcuserdata/

Javaの場合はこんな感じ(途中で省略しています)。

$ gibo dump Java
### https://raw.github.com/github/gitignore/310f125d232a837c93f482bc8b8703227b312419/Java.gitignore

# Compiled class file
*.class

# Log file
*.log

# BlueJ files
*.ctxt

giboが対応している言語、フレームワークです。

$ gibo list
Actionscript		Magento2		Backup			Octave			Julia			ROS
Ada			Pimcore			Bazaar			Otto			KiCad			Ruby
Agda			ThinkPHP		BricxCC			Patch			Kohana			Rust
Android			Puppet			Calabash		PSoCCreator		Kotlin			Sass
AppceleratorTitanium	JupyterNotebooks	Cloud9			PuTTY			LabVIEW			Scala
AppEngine		Nikola			CodeKit			Redcar			Laravel			Scheme
ArchLinuxPackages	Racket			CVS			Redis			Leiningen		SCons
Autotools		Red			DartEditor		SBT			LemonStand		Scrivener
C++			Splunk			Diff			SlickEdit		Lilypond		Sdcc
C			Xilinx			Dreamweaver		Stata			Lithium			SeamGen
CakePHP			Composer		Dropbox			SublimeText		Lua			SketchUp
CFWheels		Concrete5		Eclipse			SVN			Magento			Smalltalk
ChefCookbook		Coq			EiffelStudio		SynopsysVCS		Maven			Stella
Clojure			CraftCMS		Emacs			Tags			Mercury			SugarCRM
CMake			CUDA			Ensime			TextMate		MetaProgrammingSystem	Swift
CodeIgniter		D			Espresso		TortoiseGit		Nanoc			Symfony
CommonLisp		Dart			FlexBuilder		Vagrant			Nim			SymphonyCMS
Bazel			Delphi			GPG			Vim			Node			Terraform
InforCMS		DM			Images			VirtualEnv		Objective-C		TeX
Kentico			Drupal			JDeveloper		Virtuoso		OCaml			Textpattern
Phoenix			Eagle			JEnv			VisualStudioCode	Opa			TurboGears2
AtmelStudio		Elisp			JetBrains		WebMethods		OpenCart		Typo3
IAR_EWARM		Elixir			Kate			Windows			OracleForms		Umbraco
Exercism		Elm			KDevelop4		Xcode			Packer			Unity
Hugo			EPiServer		Lazarus			XilinxISE		Perl			UnrealEngine
JBoss4			Erlang			LibreOffice		Go			Perl6			VisualStudio
JBoss6			ExpressionEngine	Linux			Godot			Phalcon			VVVV
Cordova			ExtJs			LyX			Gradle			PlayFramework		Waf
Meteor			Fancy			macOS			Grails			Plone			WordPress
Nuxt			Finale			MATLAB			GWT			Prestashop		Xojo
NWjs			ForceDotCom		Mercurial		Haskell			Processing		Yeoman
Vue			Fortran			MicrosoftOffice		Idris			PureScript		Yii
Snap			FuelPHP			ModelSim		IGORPro			Python			ZendFramework
Logtalk			Gcov			Momentics		Java			Qooxdoo			Zephir
Bitrix			GitBook			MonoDevelop		JBoss			Qt
CodeSniffer		Anjuta			NetBeans		Jekyll			R
Drupal7			Ansible			Ninja			JENKINS_HOME		Rails
Magento1		Archives		NotepadPP		Joomla			RhodesRhomobile

giboはプログラミング言語はもちろんのこと、フレームワークやソフトウェアにも多数対応しています。GitHubが生成してくれる.gitignoreはプログラミング言語向けですが、giboと組み合わせることでより強力な指定ができそうです。

giboはShellスクリプト製のオープンソース・ソフトウェア(Public Domain)です。

simonwhitaker/gibo: Easy access to gitignore boilerplates