Страницы

Поиск по вопросам

четверг, 7 марта 2019 г.

Временные файлы при клонировании git репозитория

При клонировании большого git репозитория на диске начинает кончаться место. Это логично. При этом папка где должен лежать репозиторий в размерах не меняется. Из этого я делаю вывод что git где-то хранит временные файлы при закачке репозитория. Проблема в том, что если возникает ошибка (которая собсвенно и возникла), то эти файлы висят мертвым грузом где-то на диске. Как их найти?
Я проверял размер именно папки .git. При процессе клонирования репозитория она в размерах не меняется. Если отменить клонирование, то через некоторое время она приобретает такой размер, какой и должен быть. По логике ведь если все сохраняется туда то и размер с течением времени должен меняться? А так получается словно файлы из временной папки которые успели склонироваться перемещаются после отмены процедуры в git папку. Как это объяснить еще?
ОС — Windows 7.


Ответ

Все внутренние файлы git хранит в папке .git. Она скрытая и лежит в той папке, куда происходит клонирование. Если произошла ошибка и вы хотите клонировать заново — просто найдите и удалите эту папку.
Как правильно удалить Git tracking (контроль версий)?
При процессе клонирования репозитория она в размерах не меняется. Если отменить клонирование, то через некоторое время она приобретает такой размер, какой и должен быть.
Если в папку пишутся достаточно большие блобы (Binary Large OBject), то её размер на диске будет меняться ступенчато, хотя запись происходит непрерывно. То есть файл какое-то время открыт на запись и пишется, но его размер не пересчитывается. Потом запись прерывается (либо от ошибки, либо потому что файл завершен) и регистрируется новый размер файла
Кстати, файлы — не временные. Это постоянное внутреннее хранилище гита. Иного хранилища для временных или постоянных файлов нет. Git же работает на разных ОС и на одном диске могут быть сотни и тысячи репозиториев. Представьте, что придумано какое-то единое место для временных файлов. Это C:\TEMP\GIT\ или /tmp/git? Как не путать между собой временные файлы от разных репозиториев? Можно ведь и клонировать много сразу. Всё это внесло бы ненужную сложность

Комментариев нет:

Отправить комментарий