Есть ли способ временно переопределить атрибуты в git, аналогично тому, как -c
можно использовать для переопределения параметров конфигурации?
Я хотел бы вызвать git diff
с помощью специальной пользовательской команды textconv
, отличной от той, которую я обычно использую.
Чтобы сделать это более конкретным: Мой реальный пример использования для ноутбуков Jupyter, редактируемых в vim с помощью плагина jupytext.vim
.
Мой нормальный ~/.gitconfig
содержит
[diff "jupyternotebook"]
command = git-nbdiffdriver diff
, который устанавливает nbdime
в качестве драйвера diff, а затем в ~/.gitattributes
:
*.ipynb diff=jupyternotebook
Теперь я хотел бы иметь
[diff "jupytext"]
textconv = jupytext --from=ipynb --to=md -o - <
(или что-то в этом роде) в git config, и git diff
действует так, как если бы
*.ipynb diff=jupytext
было в .gitattributes.
Я был бы открыт для постоянного добавления раздела [diff "jupytext"]
в мой ~/.gitconfig
. Однако использование драйвера «jupytext» вместо «jupyternotebook» по умолчанию должно быть временным, в зависимости от параметра командной строки, переданного в git diff
.
В качестве альтернативы, я бы согласился с параметром командной строки git diff
, который заставляет его использовать другой файл ~/.gitattributes
, который имеет приоритет над всеми другими файлами .gitattributes
(например, в том же каталоге).
В конечном счете, опция командной строки предназначена для установки в g:gitgutter_diff_args
значения vim-gitgutter
. Я хочу заставить плагин конвертировать файлы * .ipynb не так, как я бы обычно хотел конвертировать их с nbdime
.