Итак, у меня есть проект с более крупным (закрытый исходный код), и в контексте этого проекта я создаю библиотеку, которая также может быть полезной в других местах. Я полагаю, что
Теперь я хочу отделить библиотеку от своего собственного проекта, который может стать открытым исходным кодом на github или аналогичном. Конечно, библиотека (и ее история там) не должна содержать следов нашего проекта.
git -subtree кажется здесь решением, но он не подходит.
Мой макет каталога похож на этот (так как это проект Java):
- фехтование (git workdir)
- ЦСИ
- де
- fencing_game
- транспорт (моя библиотека)
- протокол (часть библиотеки)
- фехтование (часть основного проекта, связанного с библиотекой)
- клиент (часть основного проекта, связанного с библиотекой)
- сервер (часть основного проекта, связанного с библиотекой)
- клиент (часть основного проекта)
- сервер (часть основного проекта)
- ... (часть основного проекта)
- транспорт (моя библиотека)
- fencing_game
- де
- другие файлы и каталоги (система сборки, веб-сайт и т.д. - часть основного проекта)
- ЦСИ
После разделения я хочу, чтобы макет каталога библиотеки выглядел так (включая любые файлы непосредственно в жирных каталогах):
- my-library (имя будет определено)
- ЦСИ
- де
- fencing_game
- транспорт (моя библиотека)
- протокол (часть библиотеки)
- транспорт (моя библиотека)
- fencing_game
- де
- ЦСИ
История также должна содержать только часть основной истории проекта, которая затрагивает эту часть репозитория.
Первый взгляд показал мне git-subtree split --prefix=src/de/fencing_ame/transport
, но это будет
- дайте мне дерево, внедренное в
transport
(которое не будет компилироваться) и - включают каталоги
transport/client
,transport/server
иtransport/fencing
.
Первая точка может быть уменьшена с помощью git subtree add --prefix=src/de/fencing_ame/transport <commit>
на принимающей стороне, но я не думаю, что git -subtree может многое сделать против экспорта также этих подкаталогов. (Идея состоит в том, чтобы просто иметь возможность делиться полным деревом здесь).
Нужно ли здесь использовать git filter-branch
?
После разделения я хочу иметь возможность импортировать библиотеку в свой основной проект, используя git -subtree или git -submodule в отдельном подкаталоге, а не там, где он сейчас. Я представляю макет таким образом
- фехтование (git workdir)
- ЦСИ
- де
- fencing_game
- транспорт (пустой)
- фехтование (часть основного проекта, связанного с библиотекой)
- клиент (часть основного проекта, связанного с библиотекой)
- сервер (часть основного проекта, связанного с библиотекой)
- клиент (часть основного проекта)
- сервер (часть основного проекта)
- ... (часть основного проекта)
- транспорт (пустой)
- fencing_game
- де
- моя библиотека
- ЦСИ
- де
- fencing_game
- транспорт (моя библиотека)
- протокол (часть библиотеки)
- транспорт (моя библиотека)
- fencing_game
- де
- ЦСИ
- другие файлы и каталоги (система сборки, веб-сайт и т.д. - часть основного проекта)
- ЦСИ