patch

Git - патч с файлами, измененные коммитом

23 мая 2013
Рубрика: Git

У меня достаточно часто возникает необходимость передать людям в архиве файлы, которые были изменены в новой версии продукта (в определенном коммите)

Решение в случае работы с гитом очень простое:

git diff --name-status HEAD HEAD^ | awk '{ if ($1 != "D") print $2 }' | xargs git archive -o output.zip HEAD

git diff --name-status HEAD HEAD^ - покажет разницу между последним коммитом (HEAD) и предпоследним (HEAD^). Так же можно указывать хеши нужных коммитов.

 

awk '{ if ($1 != "D") print $2 }' - отсекаем удаленные файлы

xargs git archive -o output.zip HEAD - сохраняем в архив

В результате получим все файлы (новые+измененные) с сохранением структуры проекта