Я использую вкладки для добавления отступа в моих программах Python, но я хотел бы сотрудничать (использование мерзавца) с людьми, которые используют пробелы вместо этого.
Существует ли способ для мерзавца автоматически преобразовать между пробелами, и вкладки (скажите, 4 пробелов = 1 вкладка) на продвижении/выборке? (подобный преобразованию CR/LF)
Вот полное решение:
В свой репозиторий добавьте файл .git / info / attributes
, который содержит:
*.py filter=tabspace
Linux / Unix
Теперь выполните команды:
git config --global filter.tabspace.smudge 'unexpand --tabs=4 --first-only'
git config --global filter.tabspace.clean 'expand --tabs=4 --initial'
OS X
Сначала установите coreutils с помощью brew:
brew install coreutils
Теперь выполните команды:
git config --global filter.tabspace.smudge 'gunexpand --tabs=4 --first-only'
git config --global filter.tabspace.clean 'gexpand --tabs=4 --initial'
Все системы
Теперь вы можете проверить все файлы вашего проекта. Вы можете сделать это с помощью:
git checkout HEAD -- **
, и все файлы python теперь будут иметь табуляции вместо пробелов.
Редактировать : изменена команда принудительной проверки. Конечно, сначала вы должны совершить свою работу.
Да, одним из возможных решений является использование драйвера фильтра атрибутов git (см. Также книгу GitPro ) для определения механизма размытия / очистки.
Таким образом:
Вы можете объявить этот драйвер фильтра (названный здесь « tabspace
») в .git / info / attributes
(для фильтра, применяемого ко всем файлам в репозитории Git), со следующим содержанием:
*.py filter=tabspace
Теперь запустите команды:
# local config for the current repo
git config filter.tabspace.smudge 'script_to_make_tabs'
git config filter.tabspace.clean 'script_to_make_spaces'
См. Оливье ответ для получения конкретного рабочего примера такого набора инструкций smudge / clean.