Экспорт / архивирование измененных файлов только в Git

StackOverflow https://stackoverflow.com/questions/1678032

  •  16-09-2019
  •  | 
  •  

Вопрос

Есть ли простой способ экспортировать / заархивировать только измененные файлы из данного коммита или серии коммитов в git?Кажется, я не могу найти четких инструкций для этого (а я новичок в Linux / Git).

Я использую msysgit, и по большей части меня устраивает развертывание целых репозиториев, но во многих случаях гораздо эффективнее развертывать небольшие исправления по нескольку файлов за раз.

Нажатие / вытягивание / установка git на удаленных серверах на самом деле не вариант, поскольку мой уровень доступа варьируется в зависимости от проектов и клиентов.

Есть ли прямой способ (приблизительное предположение):

pipe 'diff --names-only' to 'git-archive'? 
Это было полезно?

Решение

Я не думаю, что есть какая-либо необходимость задействовать git-archive.Используя --name-only, вы могли бы настроить файлы:

tar czf new-files.tar.gz `git diff --name-only [diff options]`

Поскольку вы новичок в Linux, возможно, этому потребуется некоторое объяснение:

Обратные ссылки в командной строке заставляют оболочку сначала выполнить команду в обратных ссылках, затем заменить выходные данные этой команды в командной строке tar.Таким образом , git diff запускается первым, который генерирует список имен файлов, по одному в каждой строке.Новые строки сворачиваются до пробелов, и весь список файлов помещается на tar командная строка.Тогда tar запускается для создания данного архива.Обратите внимание, что это может привести к появлению довольно длинных командных строк, поэтому, если у вас очень большое количество измененных файлов, вам может понадобиться другой метод.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top