2010-05-15 23 views
22

Busco el equivalente de svn cat en git.Git equivalente a `cat` SVN con el repositorio remoto

Sí, soy consciente de que the similar question se ha preguntado aquí. La respuesta es usar git show rev:path.

Sin embargo, svn cat se puede utilizar para el repositorio remoto. Es decir, que pueda hacer svn cat [email protected] y obtener el archivo de la revisión especificada del repositorio remoto, sin que todo el repositorio. Tengo entendido que git show solo se aplica al repositorio local.

Una solución que he encontrado es utilizar el interfaz gitweb para obtener la burbuja.

+3

No creo que haya ninguna manera de hacer esto sin descargar más de lo que desee: el protocolo del servidor git no lo hace disponible. Además de descargar (una parte de) un repositorio remoto, la única otra cosa que creo que puedes hacer es obtener información de referencia remota (git ls-remote). –

+2

Estoy de acuerdo con Nicholas: Creo que la única manera de hacerlo es "git fetch" (lo que permitirá actualizar su repositorio, pero no combina nada a), a continuación, ejecute uno de los comandos en el hilo mencionado. – RyanWilcox

+1

o git actualización remota (git fetch para todos los mandos a distancia) – xenoterracide

Respuesta

3

En another thread se menciona que es imposible buscar un solo archivo. Entonces, las únicas opciones son buscar el repositorio remoto o mirar el archivo con otra herramienta (como un navegador web, por ejemplo).

Github tiene una excelente compatibilidad para ver archivos en línea, puede integrarlo con curl si desea permanecer en la línea de comandos. Para otros repositorios, puede que no haya tales características.

9

Si su motivación es minimizar la cantidad de datos descargados y/o almacenados en su disco local, puede probar los siguientes comandos.

git clone --depth=1 --bare REPO 
cd REPO.git 
git show HEAD:PATH/TO/FILE 

--depth=1 significa que usted descargue solamente la revisión más reciente, no cualquier historia. --bare significa que descargará el repositorio remoto, pero no creará ningún árbol de trabajo, ahorrando espacio en su disco local.

Tenga en cuenta que si le interesa una versión del archivo que no sea la más reciente, los comandos anteriores no funcionarán, ya que no descargan ningún historial.

7
git fetch 
git show remotes/origin/master:<filename> 

Obviamente su sucursal remota podría no estar en remotes/origin/master.

8

Aquí es un truco puede utilizar con las versiones recientes de Git para obtener un único archivo de un acuerdo de recompra a distancia (a la que tiene acceso Git) sin clonar el repositorio:

git archive [email protected]:myrepo master path/to/file1 | tar -xOf - > file1 

Lo anterior consigue el archivo de master. Modifique a sus necesidades.

Cuestiones relacionadas