2009-07-30 14 views
263

Quiero rastrear un proyecto que usa git. No quiero clonar el repositorio completo y el historial completo, solo quiero la última revisión, y quiero poder actualizar a las nuevas revisiones desde el proyecto remoto.Usando git para obtener la última revisión

He intentado usar git clone, pero esto crea una copia del repositorio completo (gran tamaño de archivo) y los cambios de seguimiento hacen que el espacio en disco sea aún mayor (100mb de archivos ahora ocupan más de 2 gb).

No voy a enviar parches, y no necesito el historial. Solo quiero la última versión como en subversión.

¿Esto es posible en git?

+2

Git 1.9/2.0 (Q1 2014) será mucho más eficiente con la clonación superficial: http://stackoverflow.com/a/21217267/6309 y http://stackoverflow.com/a/21217326/6309 – VonC

Respuesta

373

Utilice la opción --depth en git clone:

Crear una poco profunda clon con una historia trunca al número especificado de confirmaciones.

ejemplo: git clone --depth=1 <remote_repo_url>

+68

ejemplo: 'git clone --depth = 1 ' – iDev247

+13

Desde [commit 82fba2b] (https://github.com/git/git/commit/82fba2b9d39163a0c9b7a3a2f35964cbc039e1a) en git 1.9 estas limitaciones ya no existen. – niutech

+1

Esto no funciona con http transporte. – Charles

64

Solución alternativa para hacer clon sin profundidad (git clone --depth=1 <URL>) sería, si el lado remoto soporta, a utilizar --remote opción de git archive:

$ git archive --format=tar --remote=<repository URL> HEAD | tar xf - 

O, si repositorio remoto en cuestión es navegable utilizando algunos interfaz web como gitweb o GitHub, entonces existe la posibilidad de que tenga la función de "instantánea", y puede descargar la última versión (con fuera de la información de versiones) de la interfaz web.

+1

Sin embargo, esta solución no satisfará este requisito: "Quiero poder actualizar a nuevas revisiones del proyecto remoto". Dado que básicamente descarga el archivo, no podrá avanzar rápidamente un compromiso o dos. "Clon superficial" lo permite. Aún así, creo que esta solución tiene sus casos de uso, así que vale la pena mencionarla. – VasyaNovikov

Cuestiones relacionadas