Подтвердить что ты не робот

Как клонировать репозиторий git из его почтового индекса

Я пытаюсь клонировать удаленный репозиторий в github, но он большой, и мое соединение не кажется достаточно стабильным, поэтому я не могу его успешно клонировать.

Но я успешно загрузил .zip репозитория.

Есть ли способ использовать этот zip, поскольку он был создан клоном git, поэтому я могу нажать, вытащить и т.д.?

4b9b3361

Ответ 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.