Как можно сделать глубокий клон хранилища в мелкую копию НА МЕСТЕ?
Я управляю отдельными установками нашего программного обеспечения, используя git для отслеживания любых изменений в коде во время выполнения установки (неотслеживаемые и грязные файлы), но хранилище довольно большое (800 МБ), поэтому иметь несколько сотен копий, лежащих вокруг, - не лучшая идея.
Так что было бы здорово, если бы эти хранилища можно было перевернуть в поверхностную копию, содержащую только развернутый в данный момент коммит, а не полное дерево. Во время обновления репо будет преобразовано обратно в глубокий клон, указанный коммит c извлечен, а затем превращен в неглубокий клон нового коммита.
git fetch --depth=1 --update-shallow
не сокращает. git размер каталога, я думаю, что он будет получать любые новые коммиты, но он не удаляет старые данные. Добавление --shallow-exclude=HEAD^2
заставляет git выдавать ошибку, хотя я не совсем уверен, как это должно работать, хотя я бы рискнул предположить, что при получении HEAD ^ 2 возникают противоречивые требования, но мне нужно проверить HEAD, который зависит от HEAD ^ 2 в глубокий клон.
error: RPC failed; curl 18 transfer closed with outstanding read data remaining
fatal: The remote end hung up unexpectedly