Я проголосовал за ответ catchyifyoutry, так как у него есть шаги, которые вы, вероятно, будете использовать, но вот удобный список.
Во-первых, напоминание.Если вы уже запустили этот репозиторий где-то наполовину, и люди вытащили репозиторий, то ни один из приведенных ниже советов не сработает.Когда в следующий раз они нажмут, а вы потянете, вы вернете исходные наборы изменений в неизмененном виде.Ваш единственный выход - поговорить с каждым человеком, у которого есть клон, и попросить его удалить его и повторно клонировать.Тем не менее, в списке:
Способы уничтожения файлов, которые вы передали в результате несчастного случая
- Если вы еще ничего не извлекли или не совершили:
hg rollback
будет действовать как один уровень отмены - Если вы хотите выбросить последние N ревизий:
hg clone -r -N repo-with-too-much repo-with-N-fewer changesets
# пример: hg clone -r -2 big-repo small-repo
- Если ваше изменение было слишком давно длялюбой из них будет в порядке:
hg convert --filemap myfilemap.txt too-big-repo new-repo
В последнем случае myfilemap.txt
содержит:
exclude path/to/file/to/remove
Примечания:
- случай
clone -r
технически запрашивает минимальный клон, который может включать ревизию tip-N, которая, если у вас ветвистое репо.Кроме того, pull -r
строк (по одной на голову) потребуется для перетаскивания другой нелинейной истории. - с решением
hg convert
будет изменен хэш-код каждого измененного набора изменений и всех их потомков.