Git: Как архивировать из удаленного хранилища напрямую?
Я обычно использую команду ниже в моем project.git
получить архив по указанным направлениям:
git archive master | tar -x -C /home/kave/site/
Интересно, можно ли архивировать данные напрямую из удаленного репозитория в каталог назначения?
Я пробовал что-то подобное, без всякой радости:
git archive master https://kave@dndigital.git.cloudforge.com/myoproject.git | tar -x -C /home/kave/site/
Какие-либо предложения? Спасибо
1 ответ
От git help archive
:
--remote=<repo>
Instead of making a tar archive from the local repository, retrieve a tar archive from a remote repository.
Команда должна закончиться как:
$ git archive --remote=https://kave@dndigital.git.cloudforge.com/myoproject.git master
Но, если вы просто извлечете репо, вы можете сделать мелкий клон, используя --depth
параметр git clone
:
--depth <depth>
Create a shallow clone with a history truncated to the specified number of revisions. A shallow repository has a number of limitations (you cannot clone or fetch from it, nor push from nor into it), but is adequate if you are only interested in the recent history of a large project with a long history, and would want to send in fixes as patches.
Итак, у вас есть что-то вроде этого:
$ git clone --depth=1 https://kave@dndigital.git.cloudforge.com/myoproject.git
Другой вариант, специально для GitHub, - github-backup
. У него есть опции для захвата специфичных для GitHub функций, таких как проблемы, вики и т. Д. Вот пример командной строки, которую я недавно использовал для создания архивов репозиториев некоторых других людей:
github-backup --all --pull-details --prefer-ssh --repository REPO REPO-OWNER -u mhucka
В приведенной выше команде REPO-OWNER обозначает владельца целевого репозитория, а REPO - это имя репозитория.