Можно ли написать крюк pre-receive на стороне сервера, чтобы предотвратить добавление больших или двоичных файлов в репозиторий через коммиты?git lfs pre-receive hooks для предотвращения нежелательных файлов в репозитории
Локально я могу контролировать поведение GIT-LFS путем добавления типов файлов в .gitattribute файл через:
git lfs track "*.zip"
Это вызвало бы, что если новый почтовый файл будет добавлен, он будет управляться GIT-LFS и не привязаны к хранилищу объектов git.
ГИТ-p4 даже позволяет мне файл пороги размера, как:
largeFileCompressedThreshold = 1m
largeFileThreshold = 50m
с несколькими разработчиками и развивающихся средах это может случиться, что один добавляет такой двоичный файл без настройки Git-LFS, следовательно, такой файл может быть представленным git напрямую. Мне нужен серверный крюк, который отказывается от такого коммита и дает содержательное сообщение, поэтому разработчик может легко идентифицировать проблему.
В идеале этот приемный крючок будет использовать существующие функции git для синтаксического анализа, например. .gitattributes вместо ручного разбора всех файлов, которые выполняются в скрипте.
Как вы понимаете, что файл отслеживается через LSF? С проверкой размера файла это кажется выполнимым: если файл отслеживается через LSF, файл в git является только ссылкой и будет небольшим. Но как это работает для проверки типа файла? Может ли CheckFile определить, действительно ли файл является ссылкой git-lfs? Это уже приближает меня - возможно, для этого можно добавить еще несколько проверок. – user2144067
githooks.checkfile.sizelimit проверяет фактический файл (а не тип файла). Если вы хотите протестировать Git-Hooks, просто следуйте руководству по адресу http://search.cpan.org/~gnustavo/Git-Hooks/lib/Git/Hooks/TUTORIAL.pod. –