- notebook は git 管理せず、ペアリングした *.py のみを git 管理する
*.ipynb
を.gitignore
に追加する
- notebook はデフォルトで python のコードにペアリングする
notebook と ソースコードの二重管理になるのが嫌だったのでこのようにした。
jupytext を使う。最初にjupytextのインストールと設定を済ませておく。
~/.jupyter/jupyter_notebook_config.py
c.ContentsManager.default_jupytext_formats = "ipynb,py"
c.ContentsManager.preferred_jupytext_formats_save = "py:percent"
リポジトリに notebook が含まれていないので、はじめてリポジトリをクローンしてきた場合は以下のコマンドを実行して notebook ファイルを復元する。
% jupytext --sync **.py
Github は
*.ipynb
のファイルを表示することができるので、 notebook を git 管理にするポリシーでも悪くないと思う。実際そうしているプロジェクトも多い(注1)。
どのみち production のコードに乗せるときはリファクタリングが必要なので、 notebook の差分を厳密に管理したい、というケースは稀かもしれない。
注1)ipynb ファイルを git 管理に含めている例
https://github.com/amueller/introduction_to_ml_with_python/blob/master/01-introduction.ipynb