¿Cómo realizo / recupero con Git * INTO * un repository simple?

Estoy escribiendo una herramienta para hacer una copy de security de todos mis repositorys desde Bitbucket (que admite Git y Mercurial) en mi máquina local.

Ya funciona para Mercurial, donde lo hago así:

  • crear un nuevo repository vacío sin una copy de trabajo en la máquina local
    (lo mismo que un repository Git bare )
  • extraer desde el repository remoto al repository local vacío

Ahora estoy tratando de hacer lo mismo con Git.

Ya descubrí que no puedo acceder directamente a un repository desnudo y que debería usar fetch lugar.

Así que lo intenté:

 C:\test>git fetch https://github.com/SamSaffron/dapper-dot-net.git remote: Counting objects: 1255, done. remote: Compressing objects: 100% (1178/1178), done. remote: Total 1255 (delta 593), reused 717 (delta 56) Receiving objects: 100% (1255/1255), 13.66 MiB | 706 KiB/s, done. Resolving deltas: 100% (593/593), done. From https://github.com/SamSaffron/dapper-dot-net * branch HEAD -> FETCH_HEAD 

Obviamente, Git buscó algo, pero el repository local está vacío después de eso.
(El git log dice fatal: bad default revision 'HEAD' )

¿Qué estoy haciendo mal?

Renuncia:
Solo tengo conocimiento Git muy, muy básico (suelo usar Mercurial).
Y estoy usando Windows, si eso importa.

Tratar

 git fetch https://github.com/SamSaffron/dapper-dot-net.git master:master 

Creo que si realmente quieres hacer una copy de security. Puedes probar el command $ git clone --mirror XXXX . obtendrá casi todo del repository. Espero que sea útil.

 $ git fetch https://github.com/SamSaffron/dapper-dot-net.git +refs/heads/*:refs/heads/* --prune 

Para hacer una copy de security del repository remoto en su repository desnudo, configure de manera regular primero

 git config remote.origin.url https://github.com/SamSaffron/dapper-dot-net.git git config remote.origin.fetch "+*:*" 

y luego simplemente corre

 git fetch --prune 

hacer copys de security.

  • Es probable que pueda omitir la adición de la configuration del puño, ya que esto debería haberse establecido al clonar el repository remoto.
  • Tenga también en count las comillas dobles adjuntas ( " ) en el command anterior para proteger el asterisco ( * ) que no debe interpretarse desde su caparazón.
  • El signo más es necesario para permitir actualizaciones no rápidas. Esa es probablemente su intención si desea hacer una copy de security del estado actual de su control remoto.
  • Opción --prune se usa para borrar también twigs no existentes.