Как клонировать репозиторий git из его почтового индекса
Я пытаюсь клонировать удаленный репозиторий в github, но он большой, и мое соединение не кажется достаточно стабильным, поэтому я не могу его успешно клонировать.
Но я успешно загрузил .zip репозитория.
Есть ли способ использовать этот zip, поскольку он был создан клоном git, поэтому я могу нажать, вытащить и т.д.?
Ответы
Ответ 1
Связанная запись здесь предоставляет информацию, необходимую для захвата каталога .git
и упрощает ответ, что umläute при условии:
-
Захватите каталог .git
, клонировав голый репозиторий
$ mkdir repo
$ git clone --bare http://github/user/repo repo
-
Создайте каталог .git
и переместите клонированные файлы
$ mkdir repo/.git
$ mv repo/* repo/.git
-
Разархивировать репозиторий
$ unzip repo.zip
-
Повторно инициализировать репозиторий
$ cd repo
$ git init
-
Убедитесь, что вы синхронизированы
$ git pull
-
Reset HEAD для очистки состояния
$ git reset HEAD
-
Здесь журнал для места репо... репо - http://github.com/udacity/fullstack-nanodegree-vm
$ git log
commit ebcbda650bc81d7f4856f5314a0689cea5b43086
Merge: 574774b b5b787e
Author: Karl Krueger <[email protected]>
Date: Tue Apr 7 11:39:54 2015 -0700`
Merge pull request #3 from pmallory/sharedDirAlert
Add a login alert to explain how to access Vagrant shared directory
commit b5b787efdb1ecec0c3c9c7f9c0fd4732f984fcb3
Author: Philip Mallory <[email protected]>
Date: Mon Apr 6 15:40:32 2015 -0700`
move the alert into the motd
commit b8012f33c86b0d19fc4c2b972af092e88d00978f
Author: Philip Mallory <[email protected]>
Date: Mon Apr 6 14:32:01 2015 -0700`
Add a login alert to explain how to access Vagrant shared directory
commit 574774ba29ccd661154431d5600240f090440c37
Author: Lorenzo Brown <[email protected]>
Date: Wed Mar 11 14:08:02 2015 -0700`
Update pg_config.sh
Added installs for Auth&Auth
commit 88fc5537b1a0017a1d76af4587a22412473809a4
Author: Lorenzo Brown <[email protected]>
Date: Wed Mar 4 13:00:25 2015 -0800`
Update and rename vagrant to vagrant/catalog/README.txt
commit f978cdc14c62b7295d8da1a95452faaa1bd108b8
Author: Lorenzo Brown <[email protected]>
Date: Wed Feb 4 11:06:03 2015 -0800`
Update Vagrantfile
switched to port forwarding on 8080
commit d6a3a26578ef3c6d01d28abca76d817938892c7f
Author: Lorenzo Brown <[email protected]>
Date: Tue Feb 3 14:52:34 2015 -0800`
Update Vagrantfile
Added:
config.vm.network "forwarded_port", guest: 80, host: 8080
config.vm.network "forwarded_port", guest: 5000, host: 5000
FSF uses these two ports for lessons 2 & 3 respectively.
commit 752a79e408c7328ef7f1766d1b97bb468ffed90a
Author: Mike Wales <[email protected]>
Date: Mon Feb 2 11:21:29 2015 -0800`
Removed .vagrant directory
commit 5af9d19adf9ab19b1d886f6cc78e556f864b42dd
Author: Mike Wales <[email protected]>
Date: Mon Feb 2 11:16:45 2015 -0800`
Initial commit.
Ответ 2
Если вы загрузили репозиторий (включая директорию .git
), это довольно просто.
-
распаковать репозиторий
$ unzip repo.zip
-
настройте remote
в вашем репозитории, который указывает на clone-URI
$ cd repo
$ git init
$ git remote add origin https://github.com/user/repo.git
-
повторная синхронизация репозиториев
$ git pull
На практике кажется, что "zip" загрузки из github не содержат каталог .git
, поэтому это не помогает: - (
Вероятно, лучший вариант, который у вас есть, - это сделать клон на машине, которая имеет стабильный доступ, а затем застегнуть каталог .git и извлечь его как-то....
Ответ 3
Хотя принятый ответ делает трюк, это кажется немного более прямым.
unzip <repo>.zip
cd <repo>
git init
git add .
git remote add origin https://github.com/<user>/<repo>.git
git remote update
git checkout master
Просто замените <user>
и <repo>
своим именем пользователя github и вашим именем репо;)
Ответ 4
Единственная zip-подобная альтернатива клонированию - это обмен "bundles" , но я боюсь, что github не предлагает создание/загрузку пакетов.
Архив zip, загружаемый из github, - это всего лишь моментальный снимок одного конкретного фиксации вашей истории репозитория (обычно это кончик ветки), и он не содержит истории — это средство предназначено для автоматического предоставления пользователям базы кода (а не разработчиков!) с возможностью удобной загрузки моментального снимка исходного кода проекта. Обратите внимание, что простые пользователи и, скажем, сторонние разработчики, упаковывающие ваше программное обеспечение для операционных систем, обычно не клонируют целые истории, а скорее работают с tarballs.
Другими словами, загрузка zip-архива работает как запуск git archive
на удаленной стороне, а затем передача результирующего файла.
Также обратите внимание, что репозитории, размещенные в github (и других хостинг-провайдерах Git), являются "голыми", то есть они не содержат подкаталог ".git".
В любом случае кажется, что ваш единственный способ решить это - найти быструю и надежную ссылку и выполнить ее первоначальную загрузку с помощью нее.
Но обратите внимание, что все меняется, если вы в порядке, не имея полной истории. Затем вы можете использовать так называемое "мелкое клонирование", передав параметр командной строки "--depth" в git clone
.