Насколько безопасно "git" с ненадежным соединением?
Я использую git для управления версиями и нажимаю свои изменения в репозитории на сервере в Интернете для безопасного хранения.
Я могу сделать небольшое количество кодирования на ноутбуке на поезде, где есть подключение к интернету Wi-Fi, но оно не настолько надежное и изредка выпадает или становится непригодным для использования медленно. Мой вопрос заключается в том, что произойдет, если мое соединение будет потеряно во время "git push"? Будет ли в конечном итоге поврежденный или обновленный репозиторий git? И если да, то насколько сложно восстановить его?
Ответы
Ответ 1
Git не будет повреждать или "обновлять" ваш репозиторий Git только из-за неудачного или медленного соединения. Он очень надежный, и я все равно буду чувствовать себя комфортно, используя его даже в самых трудных обстоятельствах.
Фактическая функция push
реализована по существу в два этапа (в случае быстрого нажатия вперед, что всегда должно быть):
- загрузить все объекты, доступные из вашей текущей ветки ветки и не достижимые из ветки удаленной ветки.
- обновить удаленную ветвь ветки, чтобы указать на последнюю фиксацию
Первая операция является идемпотентной, поэтому, если она по какой-либо причине не прошла, вы можете просто запустить ее снова, чтобы получить все актуальное. Вторая операция является атомарной и происходит только после загрузки всех новых объектов.
Ответ 2
В соответствии с Linus git настолько хорошо защищен в области данных, что он даже обнаруживает ошибку памяти в системе, в которой он работает. Он просто не будет применять пакеты, которые поступают на сервер с недопустимой контрольной суммой, поэтому вам не о чем беспокоиться.