@RuslanSer

Как «вытащить» папку из Git репозитория в отдельный репозиторий?

В общем есть небольшой проект, на Django и Vue.js. Проблема в том что когда я начал делать проект, то бэкэнд и фронтенд оказались вместе в одной папке.
Т. е. всё примерно так:
project
├── back
├── front
├── ...
└── // дальше лежат конфиги относящиеся к бэкэнду
Я хочу вытащить front из корня репозитория в отдельный репозиторий, сохранив все коммиты. Реально ли так сделать?
  • Вопрос задан
  • 140 просмотров
Решения вопроса 1
sergey-kuznetsov
@sergey-kuznetsov Куратор тега Git
Автоматизатор
Задача решается легко
# Клонируем репо в две папки рядом с каталогом project
git clone --no-local . "../new_front" # тут будет фронт
git clone --no-local . "../new_back" # тут будет бэкенд
cd ../new_back # перейдем в новый бэкенд 
# Вычистим каталог front из истории бэкенда
git filter-repo --path "front/" --invert-paths 
cd ../new_front # перейдем в новый фронт
# Оставим в проекте фронта только содержимое подкаталога front, 
# сделав его новым корнем проекта
git filter-repo --subdirectory-filter "front/"

Пакет git-filter-repo возможно придётся установить. Он не входит в базовое ядро Git.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@TheAndrey7
Реально. Копируете папку с проектом (чтобы .git тоже скопирован) и через rebase удаляете ненужные файлы/коммиты.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы