Я хочу создать отдельный репо из подпапки уже существующего репо.
Отсоединить (переместить) подкаталог в отдельный репозиторий Git показывает именно это.НО я не могу получить чистый репо с этим.У меня две проблемы с новым репо:
- История кажется дублированной;
- Я не могу сохранить историю ветвей.
Здесьвот что я сделал:
$ git clone ssh://.../repo.git
$ cd repo
$ git filter-branch --subdirectory-filter subdirectory HEAD -- --all
$ git reset --hard
$ git gc --aggressive
$ git prune
После этого, похоже, у меня есть оригинальная история репо И новая история.Я набираю «git log - all --graph» (или gitk --all) и вижу в качестве первого коммита начальный коммит первого репо.Затем на графике отображается полная история исходного репо до последнего коммита.Затем у меня есть ВТОРАЯ история поверх первой, показывающая историю только той подпапки, которую я хочу.Но в этой части истории у меня есть только "master" и нет веток / слияний.
"git log", gitk или gitg показывают только историю "flatten": они не показывают исходный репоистория до сплющенной истории подпапки.
Я пытался использовать только команду "filter-branch", клонируя получившийся репозиторий (с --no-hardlinks), используя:
$ git filter-branch --subdirectory-filter subdirectory -- --all
вместо:
$ git filter-branch --subdirectory-filter subdirectory HEAD -- --all
Но с тем же результатом.
Я делаю что-то не так или git не работает?У меня действительно нет идей ... Использование git 1.7.6.Спасибо.
РЕДАКТИРОВАТЬ: Я думаю, что проблема может быть из-за того, что коммиты слияния игнорируются фильтром ветвления, таким образом, давая ровную историю без ветвей или слияний ...