Moving to monorepos without losing history
If you’d like to merge two (or more) git repositories together and preserve the commit histories of both, here’s the script for you:
cd some-repo
git remote add other-repo git@other-repo.com:other-repo/other-repo.git
git fetch other-repo
git checkout other-repo/master
git checkout -b merge-other-repo
mkdir other-repo
for f in *; do
git mv $f other-repo
done
# If you're making a merge request:
git merge master --allow-unrelated-histories
git push origin merge-other-repo
# Then make a merge request
# If you're pushing directly to master:
git checkout master
git merge merge-other-repo
git push origin master
kms