Git

Git: творческое переписывание истории

Пришлось на днях вытащить из одного большого git репозитория (~22k коммитов) несколько файлов и прилепить их к другому репозиторию с сохранением истории. Использовал несколько типов фильтров (git filter-branch), ниже — небольшая инструкция, как это делалось. Допустим, у нас есть проект proj, из которого необходимо добыть libraries/src/main/java/vu/ya/Class1.java , libraries/src/main/java/vu/ya/Class2.java и libraries/test/main/java/vu/ya/Class1Test.java и переместить эти файлы в новый репозиторий с сохранением всех коммитов, который к ним относятся. В директории libraries/src/main/java/vu/ya есть множество других файлов и директорий которые, соответственно, нам ненужны.
Read more