BazZy BazZy - 1 month ago 13
Git Question

Git diff --name-only and copy that list

I just want to get a list of changed files between two revisions, which is simple:

git diff -–name-only commit1 commit2 > /path/to/my/file


But, what should I write, if I want copy all that listed files to another place? And I need completely identical directory structure for copied files.

For example, I have modified and added files:

/protected/texts/file1.txt
/protected/scripts/index.php
/public/pics/pic1.png


I want to have in
/home/changes/
all those changed and added files:

/home/changes/protected/texts/file1.txt
/home/changes/protected/scripts/index.php
/home/changes/public/pics/pic1.png

Answer

Try the following command, which I have tested:

$ cp -pv --parents `git diff --name-only` DESTINATION-DIRECTORY
Comments