Copy the child repo to your /tmp
(Or into another ramdisk, should be faster)
cd
into the new repo.
Now lets rewirte stuff.
Move into subdirectory (here called "report"):
git filter-branch --index-filter \
'git ls-files -s | sed "s-$(printf '\''\t'\'')\"*-&report/-" |
GIT_INDEX_FILE=$GIT_INDEX_FILE.new git update-index --index-info &&
mv $GIT_INDEX_FILE.new $GIT_INDEX_FILE' HEAD
Not check your working directory. There may be som gitignored files. You'll probably want to keep some of those somewhere.
You might want to check the new refs with gitk
It can be a neat idea to prefix them commits:
git filter-branch -f --msg-filter 'sed "1s/^/T: /"'
Tada! You have moved all your stuff into a subdirectory and prefixed the commits with "T: "
Its time to merge your stuff into your parent repo. Easy as:
git pull /tmp/report-repo