Страницы

Поиск по вопросам

среда, 29 января 2020 г.

Как скачать только папки и файлы без репозитория?

#git #git_remote #git_clone


Мне надо просто слить репозиторий, без инициализции гита, без истории изменений,
без веток. Просто папки и файлы. Как это сделать? 

Проблема состоит в следующем: если делать git clone, то мы выкачиваем ее и всю историю
и по сути инициализируем гит. Если сделать git init, git add remote ..., git pull -
тоже инициализируем гит в директории. Других способов я не знаю.
    


Ответы

Ответ 1



Вариант А: мелкое (неглубокое, shallow) клонирование, а затем убрать все .git*. Это клонирует репо без истории: git clone --depth=1 git@github.com:xxx/yyy.git Вариант Б: git archive. Это сольёт файлы репо в ZIP'е: git archive --format zip --remote=git@github.com:xxx/yyy.git HEAD

Ответ 2



Есть несколько вариантов решения этой задачи: Через неполное клонирование Используйте параметр --depth команды git clone: git clone --depth=1 При этом создается «неполный» (shallow) репозиторий. Из документации: Create a shallow clone with a history truncated to the specified number of revisions. Создать неполный клон, в котором история будет ограничена указанным количеством последних коммитов. В Git до версии 2.0 неполный клон имел существенные ограничения на последующие pull/push/fetch, но начиная с 2.0 эти ограничения были устранены. Теперь вы можете «добрать» остальные коммиты или их часть следующим образом: # последние 10 коммитов git fetch --depth=10 # все git fetch --unshallow Через git archive Можно использовать команду git archive с параметром --remote. При этом удаленный сервер создает архив с содержимым последнего коммита и передает его вам. Локальный репозиторий при этом не создается. # сохранить в архив git archive --format=tar --remote= HEAD > archive.tar # сразу распаковать в текущий путь git archive --format=tar --remote= HEAD | tar -xf - Поддерживаемые форматы: tar, zip. Не каждый сервер Git поддерживает этот функционал, и многие накладывают ограничения на передаваемый адрес. Если вы неуспешно использовали относительный адрес (вроде master^^~2^~3), попробуйте точный sha-1 коммита.

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

Отправить комментарий