tag repositorio practices crear clonar best git github zip git-clone

practices - Cómo clonar el repositorio de git desde su zip



git push tag (4)

Intento clonar un repositorio remoto en github, pero es grande y mi conexión no parece ser lo suficientemente estable, por lo que no puedo clonar con éxito.

Pero he descargado con éxito el .zip del repositorio.

¿Hay alguna manera de usar este zip como fue creado por git clone, para que pueda empujar, tirar, etc.?


La única alternativa similar a la clonación es intercambiar "paquetes" , pero me temo que github no ofrece creación / descarga de paquetes.

Un archivo zip descargable de github es solo una instantánea de una confirmación particular de su historial de repositorio (generalmente la punta de una sucursal), y no contiene ningún historial: esta función está destinada a proporcionar automáticamente a los usuarios de su base de código ( ¡no desarrolladores!) con una forma de descargar cómodamente una instantánea del código fuente del proyecto. Tenga en cuenta que los simples usuarios y, por ejemplo, los responsables de mantenimiento que empaquetan su software para los sistemas operativos, generalmente no clonan historias completas sino que trabajan con archivos tar.

En otras palabras, descargar un archivo zip funciona como ejecutar git archive en el lado remoto y luego pasarle el archivo resultante.

También tenga en cuenta que los repositorios alojados en github (y otros proveedores de alojamiento Git) son "desnudos", es decir, no contienen el subdirectorio ".git".

En cualquier caso, parece que su única forma de resolver esto es encontrar un enlace rápido y confiable y realizar su descarga inicial utilizándolo.

Pero tenga en cuenta que las cosas cambian si está de acuerdo con no tener el historial completo. Luego puede usar la llamada "clonación superficial", pasando el parámetro "--depth" de la línea de comando a git clone .


Si ha descargado el repositorio (incluido el directorio .git ), es bastante simple.

  • descomprimir el repositorio

    $ unzip repo.zip

  • configurar un remote en su repositorio que apunta al clon URI

    $ cd repo $ git init $ git remote add origin https://github.com/user/repo.git

  • resincronizar los repositorios

    $ git pull

En la práctica, parece que las descargas "zip" de github no contienen el directorio .git , así que esto no ayuda :-(

Probablemente la mejor apuesta que tienes es, por lo tanto, hacer un clon en una máquina que tenga acceso estable, y luego comprimir el directorio .git y buscarlo de alguna manera ...


Si bien la respuesta aceptada hace el truco, esto parece un poco más directo.

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

Solo asegúrese de reemplazar <user> & <repo> con su nombre de usuario github y su nombre de repositorio;)


Una publicación relacionada aquí proporciona la información necesaria para tomar el directorio .git y simplificar la respuesta que proporciona umläute :

  • .git directorio .git clonando un repositorio vacío

    $ mkdir repo $ git clone --bare http://github/user/repo repo

  • Haga el directorio .git y mueva los archivos clonados

    $ mkdir repo/.git $ mv repo/* repo/.git

  • Descomprimir el repositorio

    $ unzip repo.zip

  • Reinicializar el repositorio

    $ cd repo $ git init

  • Verifica que estés sincronizado

    $ git pull

  • Restablezca HEAD para limpiar el estado

    $ git reset HEAD

  • Aquí está el registro de la ubicación de repo ... repo - 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''s 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''s 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.