TL; DR: Да, безопасно выполнять оптимизацию git-репозитория, но делать резервные копии и проверять их.
Я предполагаю, что под "сжатием" вы подразумеваете git gc
.
Операция настолько безопасна, насколько это возможно для окружающей среды (стабильность машины, оперативная память и надежность хранения).
Тем не менее, имеет один недостаток во всех вычислительных машинах: пространство для хранения .
Помните, что git gc
может иногда (как это ни парадоксально) временно увеличивать размер хранилища (из-за распаковки объектов, которые могут быть удалены, но еще не удалены).
Если на машине недостаточно места для хранения, это может помешать успешному выполнению операции или затруднить последовательную работу. Кроме того, git gc
может потребовать огромного объема памяти (например, больше, чем размер хранилища на диске) и завершится ошибкой, если система не может справиться.
Тем не менее, я никогда не видел повреждения хранилища, казалось бы, вызванного git gc
.
Если ваша резервная копия является репозиторием клонов, будьте осторожны: некоторые элементы (ветви, легкие теги, обычные теги, конфигурации, хуки и т. Д.) Не переносятся автоматически между репозиториями, некоторые частично или в некоторых случаях только со сложными правила.
Поскольку вы беспокоитесь о безопасности данных, лучший способ обезопасить себя (и это вообще, не относится к git) - это регулярно выполнять резервное копирование + восстановление после сбоя. Затем время от времени создавайте изолированную тестовую среду восстановления (она может быть простой, например, папка на другом компьютере или виртуальная машина, в зависимости от контекста). Затем в этой среде полностью запустите процедуру восстановления и убедитесь, что ваши ценные данные и процессы снова сделали полностью работоспособными из резервной копии, не нуждаясь в основном хранилище. Таким образом, вы знаете, что в случае сбоя основного хранилища вы все еще в безопасности.