Если никто больше не придумывает более прямой ответ, Вы могли бы всегда загружать исходный код для GIMP и видеть, как они делают это.
Есть хук post-checkout
, который нужно поместить в .git / hooks / post-checkout. Вероятно, там есть образец, возможно, с именем .sample или, возможно, не исполняемый, в зависимости от вашей версии git. Краткое описание: он получает три параметра: предыдущий HEAD, новый HEAD и флаг, который равен 1, если ветвь изменилась, и 0, если это была просто проверка файла. См. man githooks
для получения дополнительной информации! У вас должна быть возможность написать сценарий оболочки, чтобы делать то, что вам нужно, и поместить его туда.
Изменить: Я понимаю, что вы хотите выполнить эту предварительную проверку, чтобы она автоматически очищала пустые каталоги. Однако здесь нет ловушки для предварительной проверки, поэтому вам придется использовать свой скрипт и для удаления каталогов.
Еще одно примечание: Псевдонимы являются частью gitconfig, который может быть локальным для репозитория (в .git / config, а не в ~ / .gitconfig). Если вы решите сделать это с помощью псевдонимов (для git-checkout, а не git-branch), вы можете легко разместить их только в репозиториях, связанных с python. Также в этом случае я бы сделал псевдоним специально для этой цели (например, cc for checkout clean). Вы все равно можете использовать checkout (или другую его форму с псевдонимом), если не хотите очищать файлы pyc.
Просто скопируйте и обновите хорошее решение от Apreche, которое было похоронено в комментариях:
Сохраните этот сценарий оболочки в файл /path/to/repo/.git/hooks / post-checkout
и сделать его исполняемым.
#! /bin/sh
# Start from the repository root.
cd ./$(git rev-parse --show-cdup)
# Delete .pyc files and empty directories.
find . -name "*.pyc" -delete
find . -type d -empty -delete