Как в git получить файлы из текущей ветки, которые отличаются от мастер-ветки?

Рейтинг: 1Ответов: 1Опубликовано: 25.03.2015

Подскажите, пожалуйста, как в git получить файлы (сами файлы, а не список), которые в данной ветке отличаются от файлов мастер ветки.

Работаем с bitbucket, там можно получить список файлов, жаль, что нельзя выгрузить их архивом.

Ответы

▲ 5

Для выгрузки архивов из git используется команда git archive. Для поиска изменённых или добавленных файлов можно использовать git diff --name-only --diff-filter=....

Пример получения архива с файлами, отличающимися в текущей версии от master:

git  diff -z --diff-filter=ACMR --name-only master HEAD | xargs -0r git archive HEAD > myarchive.tar

Проблемы примера:

  • Символические ссылки могут обрабатываться неправильно
  • Удалённые файлы не обрабатываются
  • Если будет слишком много файлов, git archive вызовется несколько раз, "склеив" архивы.