gibo : 環境ごとのgitignoreテンプレートを簡単に作ってくれるツール

git コマンド

環境ごとの.gitignoreを一発で作ってくれるgiboというシェルスクリプトが便利なので紹介します。

何かのフレームワークをダウンロードするとデフォルトで.gitignoreが用意されていたりしますが、OSが出力する中間ファイルやIDEの設定ファイルなど、Git管理対象外にしたいファイルを一つずつ追加するのは面倒ですよね。

そこでこのgiboです。(.gitignore boilerplatesの略)

simonwhitaker/gibo: Easy access to gitignore boilerplates

giboの使い方

.gitignoreのテンプレートを出力するにはgibo dumpコマンドを使います。

以下はLaravelプロジェクトとJetBrains関連のファイルを除外する.gitignoreの例です。

# gibo dump Laravel JetBrains
### https://raw.github.com/github/gitignore/55df35ee63aef4a6f859559af980c9fb87bee1a1/Laravel.gitignore

/vendor/
node_modules/
npm-debug.log
yarn-error.log

# Laravel 4 specific
bootstrap/compiled.php
app/storage/

# Laravel 5 & Lumen specific
public/storage
public/hot

# Laravel 5 & Lumen specific with changed public path
public_html/storage
public_html/hot

storage/*.key
.env
Homestead.yaml
Homestead.json
/.vagrant
.phpunit.result.cache


### https://raw.github.com/github/gitignore/55df35ee63aef4a6f859559af980c9fb87bee1a1/Global/JetBrains.gitignore

# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and WebStorm
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839

# User-specific stuff
.idea/**/workspace.xml
.idea/**/tasks.xml
.idea/**/usage.statistics.xml
.idea/**/dictionaries
.idea/**/shelf

# Generated files
.idea/**/contentModel.xml

# Sensitive or high-churn files
.idea/**/dataSources/
.idea/**/dataSources.ids
.idea/**/dataSources.local.xml
.idea/**/sqlDataSources.xml
.idea/**/dynamic.xml
.idea/**/uiDesigner.xml
.idea/**/dbnavigator.xml

# Gradle
.idea/**/gradle.xml
.idea/**/libraries

# Gradle and Maven with auto-import
# When using Gradle or Maven with auto-import, you should exclude module files,
# since they will be recreated, and may cause churn.  Uncomment if using
# auto-import.
# .idea/artifacts
# .idea/compiler.xml
# .idea/jarRepositories.xml
# .idea/modules.xml
# .idea/*.iml
# .idea/modules
# *.iml
# *.ipr

# CMake
cmake-build-*/

# Mongo Explorer plugin
.idea/**/mongoSettings.xml

# File-based project format
*.iws

# IntelliJ
out/

# mpeltonen/sbt-idea plugin
.idea_modules/

# JIRA plugin
atlassian-ide-plugin.xml

# Cursive Clojure plugin
.idea/replstate.xml

# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties
fabric.properties

# Editor-based Rest Client
.idea/httpRequests

# Android studio 3.1+ serialized cache file
.idea/caches/build_file_checksums.ser

gibo dump Laravel JetBrains >> .gitignoreなどとすれば.gitignoreのファイルが生成または既存の.gitignoreに追記されます。

テンプレートの元はGitHubのgitignoreコレクションを参照しているようです。

github/gitignore: A collection of useful .gitignore templates

出力可能なテンプレート一覧を表示する

gibo listで出力可能なテンプレートの一覧を確認できます。

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

沢山あります。

テンプレートを更新する

gibo updateコマンドでテンプレートファイルを更新します。

テンプレートを検索する

giboで使えるテンプレートを検索するにはgibo searchコマンドを使います。

# gibo search php
CakePHP
FuelPHP
ThinkPHP

テンプレート名の部分一致で、大文字小文字を無視して検索するようです。

インストール

Linux系OSへのインストール

ダウンロードして/usr/local/binあたりに配置します。

$ curl -L https://raw.github.com/simonwhitaker/gibo/master/gibo -so /usr/local/bin/gibo && chmod +x /usr/local/bin/gibo && gibo update

Fedora Linuxへのインストール

dnfでインストールします。

$ dnf copr enable saschpe/gibo
$ dnf install gibo gibo-bash-completion gibo-zsh-completion

MacOSへのインストール

brewでインストールできます。

> brew install gibo

Windowsへのインストール

scoopを使ってインストール

PowerShell用のパッケージ管理ツールscoopを使ってインストールします。

> scoop update
> scoop install gibo

gitリポジトリをCloneしてインストール

> md "C:\Users\<Your User>\bin"
> cd /D "C:\Users\<Your User>\bin"
> git clone https://github.com/simonwhitaker/gibo.git gibo

「C:\Users\\bin\gibo」にパスを通しておきます。

マニュアルインストール

giboリポジトリgibo.batをダウンロードして実行してインストールします。

パスの通ったフォルダーに配置して実行するのが良いようです。

以上です。

コメント/ピンバック

タイトルとURLをコピーしました