Страницы

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

воскресенье, 12 января 2020 г.

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

#git


При клонировании большого git репозитория на диске начинает кончаться место. Это
логично. При этом папка где должен лежать репозиторий в размерах не меняется. Из этого
я делаю вывод что git где-то хранит временные файлы при закачке репозитория. Проблема
в том, что если возникает ошибка (которая собсвенно и возникла), то эти файлы висят
мертвым грузом где-то на диске. Как их найти?

Я проверял размер именно папки .git. При процессе клонирования репозитория она в
размерах не меняется. Если отменить клонирование, то через некоторое время она приобретает
такой размер, какой и должен быть. По логике ведь если все сохраняется туда то и размер
с течением времени должен меняться? А так получается словно файлы из временной папки
которые успели склонироваться перемещаются после отмены процедуры в git папку. Как
это объяснить еще? 

ОС — Windows 7.
    


Ответы

Ответ 1



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

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

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