команда git для загрузки файлов ветки без репозитория?

#git #github

#git #github

Вопрос:

Я ищу что-то эквивалентное ручному переходу в репозиторий github и загрузке ветки в zip-файле без загрузки истории (хотя он может просто загружать файлы без zip-файла).

Я нашел git clone --depth 1 -b <branch> <repo_url> , но я не хочу создавать новое репозиторий на локальном компьютере, мне просто нужны файлы. Я думаю, что использование wget и unzip является лучшим вариантом, но я не очень хорошо знаком с git, поэтому я хочу сначала убедиться, что я ничего не пропустил. Спасибо.

Комментарии:

1. Возможно, используйте git archive с опцией —remote git-scm.com/docs/git-archive

2. Все данные, относящиеся к репозиторию git, находятся в .git каталоге, поэтому вы можете просто удалить его после клонирования, если вы просто хотите сохранить файлы

3. @bubulledu93 Это именно тот способ сделать это.

4. @truculence Вы, вероятно, не хотите делать простой клон по нескольким причинам, но основная из них заключается в том, что он загружает всю историю по умолчанию. В зависимости от репозитория, это может быть много данных только для одного оборота истории. Вы можете добавить некоторые параметры, чтобы сделать это лучше, но git archive --remote ... | tar xf - -C some-dir это гораздо более эффективный способ.

Ответ №1:

Git предоставляет несколько способов сделать это, а GitHub предоставляет несколько других способов.

Если вы работаете только с обычным Git, вы можете выполнить неглубокий клонирование, а затем удалить .git каталог, или вы можете сделать неглубокий (и, возможно, голый) клон, а затем создать архив с git archive . Оба они создают репозиторий, но это самый легкий способ с использованием простого Git, который работает почти везде.

Если вы используете SSH-пульт, вы можете попробовать git archive --remote . Не все серверы поддерживают это, и, в частности, GitHub этого не делает. Он также вообще не работает через HTTPS.

Если вам нужно решение, специфичное для GitHub, вы можете использовать REST API для загрузки архива. Вы можете указать произвольный коммит, тег или дерево. Однако вам необходимо настроить свой HTTP-клиент для отслеживания перенаправлений и соответствующей аутентификации, если репозиторий является частным.