Copiar todos los archivos modificados de la rama actual en Git
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"
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"