Если вы хотите git-решение, вы можете попробовать
git clone --mirror <oldurl> <newurl>
хотя это только для открытых репозиториев.
Если это не репо, вы также можете сделать нормальный клон, за которым следует что-то вроде этого:
git fetch origin
git branch -r | grep '^ *origin/[^ ]*$' |
while read rb; do git branch --no-track ${rb#*/} $rb; done
git remote rm origin
Средний шаг, конечно, может быть выполнен 5000 различными способами, но это один! (обратите внимание, что строка продолжения \ не нужна после канала в bash - он знает, что ему нужно больше ввода)
Наконец, я бы предложил использовать rsync вместо scp (возможно, с опциями -avz?), Если вы хотите напрямую копировать. (Что это за ошибки при смене типа?)