Уже есть еще один хороший ответ, но я хотел бы обратиться к этому конкретному вопросу напрямую:
Можно ли удалить этот установочный каталог из локального репозитория без подтверждения удаления?
Нет - и легко увидеть почему именно так, если учесть, что Git на самом деле хранит.
Каждая фиксация со своим уникальным ha sh Идентификационный номер, на самом деле сохраняет все ваших файлов в виде снимка в специальном, доступном только для чтения (замороженном на все время) формате Git только с дедупликацией. 1 Эти коммиты, таким образом, действуют сами по себе: вам на самом деле не требуется предыдущий коммит, поэтому Git позволяет существовать мелким клонам. 2
Чтобы сделать новую фиксацию, вам нужно Git повторно сохранить каждый файл (дедупликация, поэтому все неизмененные файлы просто повторно используют предыдущий). Чтобы сделать фиксацию, в которой нет некоторого набора файлов (install/*
), вы должны сделать фиксацию, в которой нет файлов. То есть вы должны зафиксировать удаление. Коммиты, что do имеют файлы, оставшиеся в репозитории, и если кто-либо в любое время в будущем сделает коммит, содержащий файл, который точно соответствует одному из этих install/*
файлов, Git будет
См. Light CC ответ , чтобы указать, что вы можете сделать вместо того, что вы делаете сейчас, что вызывает некоторую боль.
1 Технически это либо свободные объекты, , которые являются Git объектами типа blob
, которые представляют собой просто сжатую zlib-форму файла с префиксом - вы можете читать их на разных языках, используя zlib-декомпрессор и затем пропуская заголовок, или упакованные объекты , которые затем используют дельта-сжатие и поэтому их гораздо труднее читать. Git оставляет за собой право изменять формат внутреннего хранилища в будущем, поэтому обычно лучше всего Git извлечь объект, превратив его обратно в обычный повседневный файл.
2 Мелкие клоны все еще сложны, и, в частности, когда выталкивает из мелкого клона, Git может не осознавать, что какой-то другой Git уже имеет много файлов, и отправит их повторно. и заставьте другой Git дублировать их.