Задать вопрос
Xakki
@Xakki
PHP-backendчик

Как в GIT получить коммулятивный патч

Есть ли возможность в GITе, получить в архиве(или просто в папке) все фаилы которые изменились с определённой ревизии, в той же фаиловой структуре как и в репозитории?
Те получить патч для тех у кого нет GIT, и чтобы ои могли просто распаковать этот архив.
Пытался разобраться с «git format-patch», но он выдает только в своем формате.
Есть ещё «git archive -o update.zip» — но он выдает все 5000 файлов.
  • Вопрос задан
  • 6492 просмотра
Подписаться 9 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • ProductStar
    Python + Flask + Git: веб-разработка с нуля
    2 месяца
    Далее
  • Учебный центр IBS
    DEV-007 Введение в систему контроля версий Git
    1 неделя
    Далее
  • Stepik
    Git (система контроля версий)
    1 неделя
    Далее
Решения вопроса 1
Xakki
@Xakki Автор вопроса
PHP-backendчик
Решение —
git diff --name-status commit1 commit2 | awk '{ if ($1 != «D») print $2 }' | xargs git archive -o output.zip HEAD

где commit1 commit2, указывается между какими комитами нужны изменения, либо указать хешкод одного комита начиная с которого и до HEAD будут в архиве измененные фаилы.
git diff --name-status — выдает список фаилов которые были изменнены, а git archive — загоняет это дело в архив. Что делает awk '{ if ($1 != «D») print $2 }' — я так и не понял.

Спасибо Chaitanya Gupta из stackoverflow.com, за практический мгновенный ответ.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@skitalets
git-format-patch.

Вот ссылки, где описаны аргументы функции: [1], [2].
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
ITK academy Нижний Новгород
от 50 000 до 90 000 ₽
Made In Dream Санкт-Петербург
от 100 000 до 220 000 ₽
от 250 000 до 320 000 ₽