Могу ли я переписать историю всего git-репозитория, чтобы включить что-то, что мы забыли?

Недавно мы завершили преобразование из Mercurial в Git, все прошло гладко, мы даже смогли получить преобразования, необходимые для того, чтобы все выглядело / работало относительно корректно в хранилище. Мы добавили.gitignore и начался.

Тем не менее, мы испытываем некоторые серьезные замедления, как только мы объединяем / работаем с любой из наших старых ветвей функций. Немного исследуя, и мы обнаружили, что с.gitignore был добавлен только кdevelop git chuggs разветвляется, когда мы смотрим на другие коммиты без слияния, потому что они задыхаются, пытаясь проанализировать все наши артефакты сборки (двоичные файлы) и т. д ..., поскольку не было.gitignore файл для этих старых веток.

Что мы хотели бы сделать, так это эффективно вставить новый корневой коммит с .gitignore, чтобы он задним числом заполнял все заголовки / теги. Нас устраивает переписывание истории, наша команда сравнительно небольшая, поэтому заставить всех прекратить эту операцию и повторно вытащить свои репозитории, когда перезапись истории завершена, не проблема.

Я нашел информацию о перебазировании мастера на новый корневой коммит, и это работает для мастера, проблема в том,это оставляет наши ветви функций отделенными на старом древе истории, он также воспроизводит всю историю с новой датой / временем фиксации.

Есть идеи или нам не повезло в этом?

Ответы на вопрос(2)

Ваш ответ на вопрос