Вот иллюстрация того, как переместить необходимые коммиты в новый репо. Возможно, если разработчик не является экспертом git, эксперт должен сделать это для него:
Исходное репо:
m1<-m2<-m3<-m4<--master
Новое репо:
m1a-m2a-m3a-m4a<--master
m1a-m4a have the large files removed
Репо для разработчиков:
origin/master|
V
m1<-m2<-m3<-m4<-a<-b<-c<--master
a,b,c need to be pushed to the new repo
Шаг 1: Добавить и извлечь новую историю из нового репо
git remote add newRepo <new repo url>
git fetch newRepo
Репо для разработчиков:
origin/master|
V
m1<-m2<-m3<-m4<-a<-b<-c<--master<--head
m1a<-m2a<-m3A<m4a<--newRepo/master
Шаг 2: Создать новое локальное отделение и cherry-pick или перебазирование новых коммитов в него:
git checkout -b newRepo_master newRepo/master
git cherry-pick a b c
РЕПО для разработчиков:
origin/master|
V
m1<-m2<-m3<-m4<-a<-b<-c<--master
newRepo/master|
V
m1a<-m2a<-m3A<m4a<-aa<-ba<-ca<--newRepo_master (local branch)<-head
Шаг 3: Pu sh новые коммиты для нового репо на newRepo Главная ветка
git push --set-upstream newRepo master
Шаг 4: (Необязательно, но рекомендуется) Переместить локальную главную ветку
git checkout -B master newRepo_master
git branch -D newRepo_master (delete temporary local branch)
Репо разработчиков:
origin/master|
V
m1<-m2<-m3<-m4<-a<-b<-c
newRepo/master|
V
m1a<-m2a<-m3A<m4a<-aa<-ba<-ca<--master
Новое репо:
m1a-m2a-m3a-m4a<-aa<-ba<-ca<--master