2012-04-12 9 views
7

Tengo un git repo del que quiero extraer información. Hago un normal git pull sin problemas. El problema es que solo quiero un directorio determinado del repositorio. Mi pensamiento era que podía utilizar un archivo .gitignore con una regla como la siguiente:Sacando solo un directorio de un git repo

#Ignore all files 
/
#Except the one I want 
!/temp 

El problema es que esto no funciona. ¿Es esa la manera correcta de hacerlo o hay una mejor manera?

+0

Por cierto, para ignorar todos los archivos, me gustaría ir con '/ *' – c00kiemon5ter

+1

Solo para el registro: no se puede extraer solo un directorio. Siempre extrae el ** historial **, no archivos o directorios. Por supuesto, usted es libre de _trabajar_ solo en algunos archivos. – fork0

Respuesta

25

git pull recupera y fusiona la rama remota.

.gitignore funciona solo localmente y ocultará las entradas coincidentes para que no aparezcan en git status y se agreguen al índice con git add. No es lo que quieres

Lo que quiere hacer, es fetch la rama remota, y de eso, extraer el directorio/archivo que necesita.

$ git fetch <remote> <branch> 
$ git checkout <remote>/<branch> -- relative/path/to/file/or/dir 

el archivo/dir ahora debe estar en su bifurcación y agregarse al índice.

+0

Eso era exactamente lo que necesitaba. Muchas gracias! – Dan

+0

¿Debería decir 'eliminar' o' remoto' en la 2da línea? –

+0

@ ing0 gracias, era un error tipográfico;) – c00kiemon5ter