GIT (HUSKY): код выхода, когда файл фиксируется?

есть ли способ проверить, фиксируется ли файл и выйти с ошибкой?

У меня есть файл в git, который должен быть там, но никогда не должен быть изменен, и я надеялся использовать хаски в качестве предварительной фиксации, поэтому, если кто-то попытается изменить файл и зафиксировать, это вызовет ошибку.

Если в будущем мне нужно будет изменить файл, я могу просто отключить предварительную фиксацию.

файл представляет собой конфигурацию, которую мне нужно много редактировать при разработке, но изменения никогда не должны быть зафиксированы.

Я надеялся использовать хаски в качестве проверки, чтобы убедиться, что я этого не сделаю.


person Mark Smith    schedule 11.01.2019    source источник


Ответы (1)


Я бы предпочел управлять файлом с помощью драйвера фильтра содержимого, используя .gitattributes объявление.

Это означает, что вы делаете не версию фактического файла конфигурации, а только файл шаблона и файл со всеми возможными значениями для каждой среды.

smudge (изображение из "Настройка Git — атрибуты Git", из "Pro Git книга")

Сгенерированный фактический файл остается проигнорированным (.gitignore): ваше фактическое рабочее дерево не становится "грязным".

Скрипт smudge:

  • определить правильное окружение (не ветку, так как нужна только одна)
  • выбирает правильный файл значений и создает правильный файл на основе шаблона, к которому применяется сценарий smudge во время git checkout.

Таким образом, вы изменяете файл значений config.dev так, как хотите, при разработке: файл конфигурации (без версии) будет создан из этих значений.
Но в рабочей среде извлечение того же репо вызовет создание prod, используя значения config.prod (версия файла).

person VonC    schedule 11.01.2019