Ответ 1
Вы можете сделать это очень аккуратно, чтобы обычные инструменты git, такие как git log
и git diff
, могли видеть внутри сводчатых файлов, используя специальный драйвер git diff и .gitattributes
.
- Убедитесь, что пароль вашего хранилища находится в
.vault_password
и что этот файл не был зафиксирован - вы также должны добавить его в.gitignore
. -
Добавьте файл
.gitattributes
, который соответствует любым файлам вашего репозитория, которые зашифрованы с помощью скрытого хранилища и дают им атрибутdiff=ansible-vault
. Например, у меня есть:env_vars/production.yml diff=ansible-vault merge=binary env_vars/staging.yml diff=ansible-vault merge=binary
Вы также можете использовать шаблоны с подстановочными знаками - первый элемент каждой строки, шаблон, следует тем же правилам, что и файлы
.gitignore
. Опцияmerge=binary
сообщает git не пытаться выполнить трехстороннее слияние этих файлов. -
Затем вам нужно установить драйвер diff для файлов с атрибутом
diff=ansible-vault
наansible-vault view
:git config --global diff.ansible-vault.textconv "ansible-vault view"
И это должно быть - когда git вычисляет разности файлов, которые соответствует вашему шаблону, он сначала расшифровывает их.