-
Notifications
You must be signed in to change notification settings - Fork 9
gitignore
アプリケーションのソースコード、依存関係、サイズの小さな静的アセット(CSS、イメージファイル等)、多くの設定ファイルは、Herokuへのデプロイ時に、Gitのリポジトリ内をチェックされるべきです。
ログファイルや、大きな静的アセット、SQLiteのデータベースファイルのようなものは全て、リポジトリ内にある1つ、またはそれ以上の.gitignore
ファイルを経由して無視(ignore)されるべきです。このことは、slugのサイズを小さくすることにもなりますし、新たなdynoが起動されるスピードを速めることにもなります。
Gitでのデプロイ時、リポジトリのブランチがHerokuへプッシュされます。log
やtmp
ディレクトリのような余分なアセットが送られないよう、これらの特定のアセットを無視するようGitを調整し、リポジトリからは取り除いて下さい。設定は、.gitignore
内で行います。
いくつかの言語のフレームワークでは、.gitignore
ファイルを自動的に生成します。.gitignore
に記述されたパターンにマッチするファイルが、リポジトリに追加されることはありません。既に.gitignore
がアプリケーションフォルダのルートに存在していることでしょう。そこには既にいくつかの無視するパターンが追加されていることと思います。ただ、無視したいフォルダが別にも存在し、このファイル自体を調整したいと考えることもあるでしょう。
log
とtmp
ディレクトリの中身を無視する必要がある場合を仮定してみます。
この例では、log
フォルダ内の*.log
に該当するファイルを無視するアプローチと、
tmp
フォルダ内を完全に無視するアプローチを使ってみています。
:::term
$ git rm -r -f log
rm 'log/development.log'
rm 'log/production.log'
rm 'log/server.log'
rm 'log/test.log'
$ git rm -r -f tmp
fatal: pathspec 'tmp' did not match any files
$ mkdir log
$ echo '*.log' > log/.gitignore
$ git add log
$ echo tmp >> .gitignore
$ git add .gitignore
$ git commit -m "ignored log files and tmp dir"
ローカルデータベースとしてSQLite(いくつかの言語のフレームワークではデフォルトである)を使用している場合、上記までと同様にデータベースのファイルを無視するべきです。そのための方法がこちらです。:
:::term
$ git rm -f db/*.sqlite3
$ echo '*.sqlite3' >> .gitignore
$ git add .gitignore
$ git commit -m "ignored sqlite databases"
- Git Community Book on .gitignore