26 lines
504 B
Bash
26 lines
504 B
Bash
#!/bin/bash
|
|
|
|
if (( $# < 3 ))
|
|
then
|
|
echo "Usage: $0 </path/to/repo/> <directory/to/extract/> <newName>"
|
|
echo
|
|
echo "Example: $0 /Projects/42.git first/answer/ firstAnswer"
|
|
exit 1
|
|
fi
|
|
|
|
|
|
clone=$PWD/${3}Clone
|
|
newN=$PWD/${3}
|
|
git clone --no-hardlinks file://$1 ${clone}
|
|
cd ${clone}
|
|
|
|
git filter-branch --subdirectory-filter $2 --prune-empty --tag-name-filter cat -- --all
|
|
cd -
|
|
git clone file://${clone} ${newN}
|
|
cd ${newN}
|
|
|
|
git reflog expire --expire=now --all
|
|
git repack -ad
|
|
git gc --prune=now
|
|
|