Как игнорировать многочисленные удаленные файлы в git? - PullRequest
0 голосов
/ 11 апреля 2020

Я добавил папку с миллионами файлов с git add и удалил их с помощью git rm -r FolderPath. Затем я зафиксировал git commit и размер папки объекта в. git достигает более 250 МБ. Поэтому, когда я пытаюсь создать репозиторий, он буквально не справляется с большим количеством файлов. Я пробовал много способов, таких как git add -u, git gc, git gc --prune=now --aggressive, et c. но ни один из них не решил проблему.

Наконец я удалил папку объектов, и все испортилось. Поэтому я не могу ни pu sh, ни тянуть.

Кто-нибудь знает простой способ избежать этих сценариев ios?

1 Ответ

2 голосов
/ 11 апреля 2020

Лучший способ: не вставлять коммиты, которые вы не хотите вставлять.

Каждый коммит добавляет к хранилище. Репозиторий - это не что иное, как большая коллекция коммитов.

Все коммиты полностью доступны только для чтения. Никакая часть любого коммита не может быть изменена.

Каждый коммит имеет полный снимок всех своих файлов. Если файл снимка совпадает с предыдущим файлом предыдущего снимка, Git может и повторно использует предыдущий файл. Если у снимка нет предыдущего файла, у него просто нет файла. Это не меняет предыдущий снимок. Вы все еще просто добавляете снимок: это просто файл, у которого нет файла.

Это возможно удалить коммит , вроде. Для этого, однако, вы должны удалить каждый последующий (потомок) коммит, а также , потому что частью каждого коммита является commit-ha sh -ID его предыдущего коммита, который должен существовать. Поэтому, если вы вставили большой коммит по ошибке, его легко удалить, когда он все еще остается последним коммитом. Но если вы добавите больше коммитов поверх него, теперь вам нужно будет удалить каждый коммит с плохого.

Я оставлю все остальные Как отменить самые последние локальные коммиты в Git

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...