У меня есть Git репозиторий с довольно длинной историей. Один из каталогов в хранилище отслеживается, но состоит из сгенерированного содержимого. Размер репозитория становится проблемой, и это связано с изменениями в сгенерированном каталоге, которые можно извлечь из другого содержимого репозитория (он отслеживается только из-за определенных инструментальных ограничений). Это означает, что история этого отдельного каталога, в частности, не очень важна, но для остальной части хранилища это так.
Поскольку я ищу способы уменьшить размер хранилища, не теряя при этом полезного История, я определил два способа: либо удалить историю только для файлов в этом каталоге, фактически удалив историю этого сгенерированного каталога, либо удалить все коммиты, которые имеют определенное сообщение о коммите, потому что в этом случае каталог является только когда-либо изменял коммиты с определенным сообщением коммита. К сожалению, лучший фильтр, такой как имя участника или электронная почта, не может быть использован в качестве автоматизации, которая создает каталог, олицетворяет одного из участников репо.
Какой из этих двух подходов выполним в Git? И если оба, что может быть лучше? Есть ли какие-то подходы, которые мне не хватает? У меня ограниченный опыт внесения поправок в историю репо Git, обычно для исправления сообщений коммитов или уничтожения доказательств существования определенных файлов, таких как секреты и ключи. Я хочу проинформировать себя, прежде чем освободить sh такое крупномасштабное изменение в репозитории.
Не думаю, что мне нужно добавлять это, но на всякий случай: репозиторий размещен на GitHub, и я предположим, что я могу просто принудительно принудительно сделать pu-101 * на GitHub после внесения изменений, чтобы убедиться, что история на GitHub обновляется таким же образом. Я не ожидаю, что есть какие-то изменения, которые я мог бы внести, которые бы работали локально, но не могли быть перенесены на конкретный GitHub как удаленный, но если они есть, я бы хотел узнать о них.