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 - это имя репозитория.

Другие вопросы по тегам