Auf mactricks.de gibt es eine schöne Anleitung um aus einem Teil eines Git Repositories ein Subrepository zu erzeugen. Allerdings gibt es mit der Variante ein Problem. Wenn man das ganze mehr als zwei oder dreimal machen möchte, wird es mit der Zeit nervig all diese Befehle einzugeben.
Aus diesem Grund habe ich für das Extrahieren eines Subprojektes aus einem Git Repository ein Skript geschrieben:
#!/bin/sh # extractSubproject <orignal repopath> <new repopath> <subfolder> <new remote (optional)> # clone repository git clone --no-hardlinks $1 $2 # extract subproject cd $2 git filter-branch --subdirectory-filter $3 HEAD git reset --hard git remote rm origin rm -r .git/refs/original/ git reflog expire --expire=now --all git gc --aggressive git prune # Add optional remote and push if [ "$4" != "" ]; then git remote add origin $4 git push origin master fi
Heruntergeladen werden kann sich das Skript auch unter https://github.com/seeseekey/archive/blob/master/Bash/Git/extractSubproject.sh.