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/*
Другие вопросы по тегам