git hook для пакетного удаления всех файлов по пути
У меня есть папка, где я записываю свои мысли/примеры кодов, которые мне нравятся, чтобы их было видно.
git status
. За исключением этих файлов, довольно часто я могу просто
git add .; git commit
, но, очевидно, содержимое в
devlog
запретить это. Мне нравится иметь git-хук, который будет удалять весь путь и его содержимое перед фиксацией.
Я старался:
git rm --cached devlog/*
Но судя по всему, он ожидает всего содержимого
./devlog
быть поставлены уже (в том числе те, которые игнорируются
.gitignore
) и, следовательно, выдает ошибку:
git rm --cached devlog/*
#> fatal: pathspec 'devlog/check.log' did not match any files
Где
devlog/check.log
игнорируется и вообще не ставится.
2 ответа
Вот решение, которое, кажется, работает. Просто добавьте в
.git/hooks/pre-commit
следующее:
git reset -- devlog/*
Ты мог:
- сначала принудительно добавить,
- тогда все
С
check.log
игнорируется (перечислено в
.gitignore
), он будет автоматически проигнорирован (снова) после
git rm --cached
.
Так:
git add --force devlog/check.log
git rm --cached devlog/*