Может ли git-репозиторий быть поврежден, если команда, изменяющая его, аварийно завершается или прерывается?

Играя с git, я иногда пробую кое-что, а затем прерываю команды, которые занимают слишком много времени (например, некоторые команды git svn, которые зависают во время проблем с сетью). Это заставило меня задуматься:

Всегда ли безопасно принудительно прерывать команду (Ctrl-C или kill)? Что если команда завершилась аварийно (закончилась память, ошибка, проблемы с сетью/ФС)? Являются ли изменения в хранилище "транзакционными" в том смысле, что незавершенные изменения "откатываются" (как в версионной файловой системе)? Или в этом случае я рискую повредить хранилище?

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

11
задан Tunaki 18 February 2016 в 16:49
поделиться