Срок работы пробной версии продукта истек. Через две недели этот сайт полностью прекратит свою работу. Вы можете купить полнофункциональную версию продукта на сайте www.1c-bitrix.ru. Архив с разницей между ветками Git

Архив с разницей между ветками Git

Архив с разницей между ветками Git

Периодически возникает задача передать третьим лицам изменения за последнее время в Git репозитории. В этом небольшом совете рассмотрим при помощи каких git команд можно получить разность между ветками и упаковать эти файлы в zip архив для удобной передачи.

Такой подход понадобился на достаточно большом проекте, при следующих условиях:

  • Проект состоит из большого количества файлов.
  • На локальном сервере используем Git.
  • Деплоймента и Git'а на боевом сервере нет.

Очевидным решением является установить Git на сервере и настроить деплоймент, но в этом случае такое решение не подходит, на причинах мы останавливаться не будем.

Команда для создания архива с файлами по разности между двумя ветками Git:

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

Рассмотрим подробно. У нас имеется две ветки master и develop. Ветка master содержит стабильный рабочий код, а ветка develop используется для разработки, т.е. сначала все коммиты делаем в эту ветку, а после проверки переносим в мастер.

Приведенные выше git команды находят все изменения в ветке develop, которых нет в мастере и добавляют их в архив. Архив создается в корне с именем update.zip. Краткое описание каждого действия:

  • git diff --name-status master develop - получить изменения между ветками;
  • awk '{ if ($1 != "D") print $2 }' - исключить удаленные файлы;
  • xargs git archive -o update.zip develop - создаем по списку файлов архив.
 926 Git, Сниппет
19 июня 2015
Миха Васильев

Фрилансер, учу Bitrix, познаю дзен :-)

Возможно Вам будет интересно

Комментарии

Чтобы оставлять комментарии необходимо зарегистрироваться и пройти авторизацию.