Ответ 1
Вот решение для этой проблемы. Исходный git фильтр, на который вы ссылаетесь, был формализован как пакет nbstripout
(pip3 install nbstripout
), но вы можете поместить любой фильтр в этот script, и он будет работать одинаково. Я предполагаю, что вы хотите настроить это для пользователя, а не для определенного репо.
В ~/.gitconfig
добавьте новый драйвер diff с именем git-nb-clean-diff
:
[diff "git-nb-clean-diff"]
command = git-nb-clean-diff
В ~/.config/git/attributes
сконфигурируйте переносные ноутбуки с этим драйвером diff:
*.ipynb diff=git-nb-clean-diff
Теперь нам нужно сделать фактический драйвер diff! В ~/bin/git-nb-clean-diff
(должно быть указано это имя файла, но местоположение необязательно):
#!/bin/bash
# pass the stripped working tree file and the repo copy
# to meld for diffing
meld <(cat $1 | nbstripout) $2
Наконец, мы делаем этот файл исполняемым
chmod +x ~/bin/git-nb-clean-diff
и добавьте его в путь, чтобы git мог найти наш драйвер diff при запуске
echo "PATH=$PATH:~/bin" >> ~/.bashrc
# reload the edited .bashrc
source ~/.bashrc