Как получить список файлов, измененных с момента последнего коммита и экспортировать их в tar файл

git diff-tree -r --no-commit-id --name-only --diff-filter=ACMRT COMMID_HASH | xargs tar -rf mytarfile.tar


Команда «git diff-tree -r —no-commit-id —name-only —diff-filter=ACMRT COMMID_HASH» используется для получения списка файлов, которые были изменены с момента последнего коммита и соответствуют указанным фильтрам.

Аргументы команды:
— «-r» указывает на рекурсивный поиск изменений в подкаталогах;
— «—no-commit-id» исключает идентификаторы коммитов из вывода;
— «—name-only» оставляет только имена измененных файлов;
— «—diff-filter=ACMRT» фильтрует файлы по определенным типам изменений (добавление, копирование, модификация, перемещение, удаление, изменение типа файла).

Далее, результат команды передается в команду «xargs», которая выполняет заданную команду для каждого аргумента, переданного ей. В данном случае, команда «tar -rf mytarfile.tar» используется для добавления найденных файлов в архив tar с именем «mytarfile.tar».

Альтернативой этой команде может быть использование команды «git diff» для получения только diff-файлов без фильтрации и добавления их в архив tar отдельными командами.

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *