How to integrate external repo into existing directory of a bigger repo (git subtree)?
- From
- Manuel Reimer <mail+git@m-reimer.de>
- Date
- Dec 24, 2020, 14:53 UTC
- Message-ID
- <e30c1de9-9449-78d6-99eb-c3bbad673903@m-reimer.de>
Hello,
some while ago (before I found out that "git subtree" exists), I've set up a big GIT repo consisting of several smaller modules. It was way more convenient to maintain them all in one repository compared to having each in its own repository.
As I need a separate repository per module for technical reasons, I wrote a shellscript which temporarily checks out the external repository, deletes all files, places the files from my big repo, creates a generic commit with auto-generated commit message and then pushes this to the server.
So what I have now is:
- Big repo consisting of many small modules, each one in its own directory with proper commit messages - Several external repositories with autogenerated commit messages
What I want to do is porting this over to "git subtree" somehow, but:
- I would prefer to not loose history in the "big repo" - I can't force-push to the small external repositories (blocked)
Is there any chance to somehow "restart" the history of an existing directory in a way to reproduce the commits of the external repository so "git subtree" works as intended and I can "git subtree push" without running into the server side "force push" block? I know that reorganizing my whole big repo would do the trick as the subtree would be added to a directory that never existed, but I would prefer to keep it organized the way it is.
Thanks in advance
Manuel