2009-02-27 49 views
15

Guardo muchas cosas en repositorios git, en la red. El problema es que a menudo me encuentro en máquinas que no tienen git, y donde tampoco tengo acceso de root. No necesariamente necesito volver a realizar cambios en el repositorio, solo obtener el maestro actual del proyecto git.¿Puedo descargar un repositorio git sin git?

¿Hay alguna forma de descargar un git repo, sin tener git? La solución ideal sería algún tipo de script de shell portátil.

Gracias!

+1

Umm, ¿scp/rsync no funciona por alguna razón? –

+0

Has DICHO script de shell ... simplemente me pregunto :) –

+0

Lo que pasa es que solo tengo acceso a git: // my_project, no acceso completo de shell :-( –

Respuesta

4

Parece que lo que está buscando es algo que le permitirá tener un directorio de trabajo local con su repositorio de git remoto real .

Dado que eso va en contra de la filosofía de Git de tener siempre toda su historia de repositorio local, dudo que vaya a encontrar nada. Su mejor opción sería copiar las fuentes de otro directorio de trabajo de git a través de los métodos típicos de copia de archivos (ftp a tarball, o lo que sea).

EDIT: OOC, hace que el cliente git realidad requieren acceso de administrador para instalar para uso personal? Entiendo que necesita un administrador para instalar uno de los servidores de git, pero el cliente debería estar bien solo con el acceso del usuario. Intenta instalar (o compilar desde fuentes) solo el cliente.

+0

Hombre, qué tonto de mi parte no pensar en intentar compilarlo desde el origen e instalarlo localmente. Construido limpiamente e instalado en ~/local, no hay problema. Je, gracias por esto! –

5

¿Puede agregar un navegador Git basado en la web a las computadoras que alojan estos repositorios? Algo como Gitweb o similar?

15

En el servidor con el repositorio de git, cree un script de shell que exporta y comprime el código, luego descárguelo de las otras máquinas.

Por ejemplo:

cd /pub/git/project.git 
git archive --format=zip --prefix=project/ HEAD > /home/project/public_html/downloads/project-dev.zip 


Además, para hacer esto genera CABEZA bajo demanda, utilice un script del lado del servidor para ejecutar el script de shell y proporcionar el archivo zip para su descarga.

Aquí hay una secuencia de comandos básica de CFML que hace esto, pero obviamente se puede escribir en cualquier idioma del lado del servidor.

<cfset OutputFilename = "#ProjectName#-dev.zip"/> 
<cfexecute name="/home/project/latest.sh"/> 
<cfheader name="Content-Disposition" value="inline; filename=#OutputFilename#"/> 
<cfcontent file="./#OutputFilename#" reset type="application/zip"/><cfsetting showdebugoutput="false"/><cfabort/> 


EDITAR: La interfaz web cgit a Git apoya esta fuera de la caja. Ver cualquier confirmación y puede descargar un .zip, .tar.gz o un .tar.bz2

+0

@Peter, un caso de si la montaña no vendrá a Muhammad, Muhammad debe ir a la montaña. Muy bien. –

+0

Lieven: Creo que la frase está en el orden inverso :) – Nerian

+0

+1 para el enlace a cgit – nsantorello

6

Puede simplemente scp (1) un repositorio git en su máquina local, si tiene acceso ssh a la máquina en la que reside el repositorio git. Cuando desee fusionar el historial, puede recuperar el nuevo repositorio y fusionarlo.

+0

+1 por el sentido obvio y el sentido común. –

+0

o ssh a una máquina con git, luego clone el repositorio, luego vuelva a colocar el directorio de trabajo en la máquina en la que se encuentra. –

Cuestiones relacionadas