Я хотел бы создать новую ветку в моем репо, которая включает в себя файлы только из определенного каталога в master и его истории , а затем перенести эту ветку в новый репозиторий.
... или что-то эквивалентное - например, может быть возможно отправить каталог в новый репозиторий в новый репозиторий, не создавая ветку.
Пока что я думаю, что следующее будет работать, но мне интересно, есть ли более обтекаемый путь.
1 - Создать пустую ветку:
git symbolic-ref HEAD refs/heads/<new-branch>
rm .git/index
git clean -fdx
2 - извлечение каталога из мастера:
git checkout master <paths> ...
git add <paths> ...
git commit
3 - Переместить ветку на новый пульт:
git push -u <remote-URL> <new-branch>
4 - Затем в новом репо объединить ветку с мастером:
git checkout -t origin/<new-branch>
git checkout master
git merge <new-branch>
git branch -d afterimage
git branch -d -r afterimage
Я пытаюсь сделать что-то эквивалентное Отсоединить подкаталог в отдельный репозиторий Git , но без git filter-branch
mess.