Файлы не имеют истории коммитов. Коммиты являются историей, а коммиты имеют файлы.
Либо у вас есть эти коммиты (и, следовательно, эти файлы плюс все другие файлы), либо у вас нет этих коммитов (и, следовательно, у вас нет этих файлов).
Если вы хотите историю, в которой только эти файлы существуют, без каких-либо других файлов, которые являются частью коммитов, содержащих эти файлы, вы должны создать новую историю в котором существуют только эти файлы.
Как именно вы поступите так, зависит от вас. Вы можете сделать один коммит (без дополнительной истории - новая история - это всего лишь один коммит, с файлами как есть). Это более или менее то, что вы получите с ответом Майка Фабера . Или вы можете использовать git filter-branch
или BFG для редактирования клона репозитория, создавая серию новых заменяющих коммитов, в которых есть файлы, которые вы хотите сохранить, но избегаете файлов, которые вы хотите удалить. Тогда у вас будет новая сфабрикованная история, в которой были зафиксированы только эти файлы.
Обратите внимание, что все это не влияет на исходный репозиторий и его коммиты: вы создаете то, что составляет целый новый репозиторий с новой историей, в которой в коммитах появляются только эти файлы. не имеет значения, как вы достигнете этого результата. История, в которой появляются эти файлы, но не другие файлы, является по определению новой и другой историей, и поэтому принадлежит в новом и другом хранилище.
(Часто достаточно только самой последней копии файлов, и в этом случае просто используйте метод, который делает хранилище с одним коммитом, хранящим последние версии файлов. Как правило, это проще, чем писать причудливый фильтр ветвления фильтра Я на самом деле не использовал BFG, возможно, это также облегчает эту работу.)