Cuando se trabaja con varios proyectos en github, cada uno con varias ramas es normal querer extraer los archivos para hacer alguna prueba en el servidor de pruebas o simplemente revisar los archivos aparte que han sido modificados.

En git se pueden ver los archivos por separados y en la interfaz de github también por cada commit o pull request, pero si se trata de copiar los archivos en el directorio ya necesitamos otras herramientas.

Yo hago uso de estos dos comandos en consola para manejarme con archivos y ramas en git:

Copiar todos los archivos del último commit en la rama en la que se está:

for /f "usebackq tokens=*" %A in (`git diff-tree -r --no-commit-id --name-only --diff-filter=ACMRT HEAD~1 HEAD`) do echo FA|xcopy "%~fA" "C:\git_changed_files\%A"


Estando en la rama a comparar, copia todos los archivos modificados en la rama actual respecto a master:

for /f "usebackq tokens=*" %A in (`git diff --name-only master $(git rev-parse --abbrev-ref HEAD)`) do echo FA|xcopy "%~fA" "C:\git_changed_files\%A"