Во-первых, после запуска git-checkout
в сценарии перехвата у вас do есть рабочее дерево, оно находится в отдельном каталоге от простого репозитория.
Во-вторых, сценарий, который выhave будет удалять файлы , которые находятся под контролем git , когда они удаляются из репозитория (например, с git rm
).
Тем не менее, есливы также хотите удалить все локально созданные файлы из вашего рабочего дерева, вы можете сделать это, добавив git clean
к тому же скрипту хука после проверки:
git --work-tree=/var/www/html/myrepo --git-dir=/var/repo/myrepo clean -fd
, где -f
означает force и -d
означает также удаление каталогов (но прочитайте руководство , прежде чем делать это в любой реальной среде).Чтобы проверить это, вы можете задать параметр -n
(пробный запуск), который не будет ничего удалять, а просто печатать то, что он удалит, например:
git --work-tree=/var/www/html/myrepo --git-dir=/var/repo/myrepo clean -nd
Edit: , как прокомментировано@jthill, git-clean
имеет дополнительные параметры (-e
, -x
, -X
) для выборочного удаления неотслеживаемых файлов на основе комбинаций данного шаблона и .gitignore
(подробности см. в руководстве ).).