IMAGE: https://cdn-ak.f.st-hatena.com/images/fotolife/i/ikmbear/20210102/20210102104736.png
現在のプロジェクトで「自分だけ」が使用しているファイルをGitの対象外にしたい
最近Railsを6.1にあげたのですが、これが原因でrailwaysというRubyMineでルーティングを表示するRailsが使えなくなりました😅
Rails6.1にあげた事で
rake routes
が使用できなくなり、RubyMineのrailways$1(rake routes
が必要)が動かなくなった。https://t.co/OzkrSsW3dwhttps://t.co/M5WJnv3FfX— Ikuma_t (@ikumatdkr) 2021年1月2日
railwaysが対応してくれるまでは、一旦Rakeタスクを自分で追加しています(他力本願…自分で直せるようになりたい😓)。
暫定対応として、routes.rakeファイルを作って
rails routes
をラップしてる(毎回やるのは面倒😅)— Ikuma_t (@ikumatdkr) 2021年1月2日
このファイルの使用状況は以下の通りです。
- 自分しか使っていない(RubyMineでrailwaysを使う人しか必要ない)
- railwaysが治れば、このファイル自体が不要。なのでグローバルにはGitの対象外としたくない(あとあとメンテナンスが面倒なので)
この場合どうGitの対象外にすればいいのか迷ったので、調べてみました。
結論
現在のプロジェクトで「自分だけ」が使用しているファイルをGitの対象外にするには、$GIT_DIR/info/exclude
に追記する
Gitの対象外とする際の使い分け
Gitの対象外とするには次の3つの方法があります。
.gitignore
に追記:特定の$1を利用するすべての人が対象外とすべきものをここに追記する。$GIT_DIR/info/exclude
に追記:特定の$1で対象外とすべきだけれど、他の人に共有すべきではないものをここに追記する。$HOME/git/ignore
に追記:自分が利用するすべての$1で対象外とすべきものをここに追記する。
例えば今FJORD BOOT CAMPでRailsアプリケーションの課題を進めていますが、その場合の設定例は次の通りです。
.gitignore
Railsのデフォルトに加え、画像のアップロード先、Railsの設定先を対象外として追記しています。
$GIT_DIR/info/exclude
railways用に今回の$1に追加したRakeタスクを対象外とします。
$HOME/git/ignore
Mac上でRubyMineを使用して開発をしているので、全Macで対象外とします。
Git - gitignore Documentation
参考:Which file to place a pattern in depends on how the pattern is meant to be used.
Patterns which should be version-controlled and distributed to other repositories via clone (i.e., files that all developers will want to ignore) should go into a .gitignore file.
Patterns which are specific to a particular repository but which do not need to be shared with other related repositories (e.g., auxiliary files that live inside the repository but are specific to one user’s workflow) should go into the $GIT_DIR/info/exclude file.
Patterns which a user wants Git to ignore in all situations (e.g., backup or temporary files generated by the user’s editor of choice) generally go into a file specified by core.excludesFile in the user’s ~/.gitconfig. Its default value is $XDG_CONFIG_HOME/git/ignore. If $XDG_CONFIG_HOME is either not set or empty, $HOME/.config/git/ignore is used instead.