2012-02-06 11 views

Respuesta

16

Si vas a la página y ver los enlaces proporcionados por la "cruda" (en la esquina superior izquierda, al ver el archivo). Verá, que se puede acceder a él a través de:

https://github.com/username/repository/raw/$changeset_hash/path/to/file 

En lugar de $changeset_hash también puede proporcionar una rama (por ejemplo maestro) o etiqueta.

Puede recuperar el archivo sin procesar usando algo como wget.

El acceso a un único archivo directamente desde un .git-repository no es posible (hasta donde yo sé), debido a cómo se almacenan los datos.

edición: Cuando desee acceder a un archivo de un repositorio privado, primero deberá crear un token de acceso con los permisos adecuados en la configuración de su cuenta. En lugar de llamar a la url de arriba, puede usar github's API to access the content of a file. Asegúrese de usar el encabezado Aceptar para custom media types para obtener los datos brutos. Esto podría ser algo como esto:

curl \ 
    -H 'Authorization: token $YOUR_TOKEN' \ 
    -H 'Accept: application/vnd.github.v3.raw' \ 
    -O \ 
    -L 'https://api.github.com/repos/:owner/:repo/contents/:path' 

El -O ahorrará el contenido en un archivo local con el mismo nombre que el nombre del archivo remoto. Para un uso más fácil, puede envolverlo en una secuencia de comandos. @Chris_Withers sugirió una edición con un buen fragmento de python que desafortunadamente fue rechazado por un gran cambio en la respuesta.

+0

'changeset_hash' también puede ser el nombre de una sucursal. –

+0

Acceder a un solo archivo desde .git es bastante sencillo. git ls-tree branch da una lista de los archivos y/o árboles. Luego, git cat-file -p blob-sha imprime el contenido de un archivo. –

+2

¿Cómo puedo obtenerlo de un repositorio privado? – expert

-1
git checkout 

Ej:

git checkout master~2 file1 

(git checkout --help ayuda)

+0

Parece que el OP quiere evitar clonar todo el repositorio ... –

12

Copiar el vínculo prima del archivo específico desde GitHub (Al abrir el archivo en Github, en la esquina superior derecha se puede. vea la opción para abrir el archivo en modo raw. Ábralo en modo raw y copie el URL)

Ahora use el comando curl en la línea de comando para descargar el archivo.

curl -o filename raw-link-to-file 
Cuestiones relacionadas