Как отделить связанные объекты в живом репозитории git (или как удалить внутреннюю ссылку из общего зеркала) - PullRequest
0 голосов
/ 24 апреля 2020

Какие шаги необходимо предпринять, чтобы удалить зеркало git?

Я клонировал android и загрузил полное зеркало, чтобы иметь возможность быстрее оформить заказ с помощью git clone --reference (С его оберткой repo init --mirror) но мое зеркало содержит части кода, на которые никогда не ссылаются, и здесь слишком много дискового пространства. Например, мне не нужно иметь предварительно скомпилированные бинарные файлы для MacOS и Windows, когда используется только Linux.

. Я вижу два возможных пути вперед, пожалуйста, дайте мне знать в комментариях, если я должен разделите это на два отдельных вопроса

Вариант 1: состоит в том, чтобы отделить зеркала от всех кассовых мест, где локальное репо git больше не использует зеркало, но содержит все, что содержится в его собственные каталоги. Я думаю, что, возможно, для этого можно использовать некоторую командную строку для git fsck.

Я не использовал --dissociate при создании для клонирования. Теперь я хочу преобразовать общие объекты в диссоциированные объекты.

Вариант 2: найдите, какие модули в зеркале действительно используются, и удалите все, на которые нет ссылок. Вероятно, это может быть работа для find, grep и awk magi c.

Я также хотел бы работать выше без разрушения моих рабочих каталогов на случай, если у меня есть какие-то изменения забыли совершить где-нибудь.

...