Слияние изменений от ведущего устройства во все ответвления с помощью Мерзавца?

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

Основным ответвлением мерзавца является Соединительная линия, и другие ответвления мерзавца являются функциями или вещами, которые я хотел бы испытать. Поэтому мое типичное использование обновляет ведущее устройство с последними мерами и затем объединяет ведущее устройство в отдельные ответвления, таким образом, каждый из них остается в курсе.

Эта система работает хорошо на меня, за исключением того, что я имею к контролю ответвление, объединяю ведущее устройство и промывку/повторение для других ответвлений. Учитывая систему управления версиями как мерзавец, я не вижу это масштабирование очень хорошо учитывая тот факт, что я был бы подвержен порождению большого количества ответвлений со временем.

Я - все еще новичок мерзавца, таким образом, я подозреваю, что может быть своего рода механизм, что у мерзавца уже есть это, я мог бы отсутствовать. Есть ли один? В противном случае, как каждый передает изменение во всех ответвлениях, таким образом, они остаются в курсе самостоятельно?

14
задан Aify 2 July 2015 в 21:06
поделиться

2 ответа

Одна из возможностей (не тестировалась мной):

  • установить чистое репо, куда вы можете отправить свою основную ветку.
  • имеют ловушку post-receive (см. страницу руководства githooks ) на этом голом репозитории, который затем подталкивает master к каждому репо «функции», которое вы хотите.
  • иметь ловушку post-receive на репо функции для начала:
    • перебазирование вашей функциональной ветки поверх основной (хорошо, если вы еще не разместили свою функциональную ветку в другом месте)
    • или слияние основной ветки вашей функции ветка.

Вам все равно нужно будет добраться до репозитория вашей функции и проверить, не заблокированы ли ребазирование или слияние из-за некоторых конфликтов слияния.

6
ответ дан 1 December 2019 в 14:21
поделиться

Если

  1. ветви, в которые вы хотите слить последние коммиты мастера, не опубликованы И
  2. вы хотите, чтобы все коммиты мастера были в других ветвях

тогда вы можете просто перебазировать их в мастер после обновления мастера. Этот небольшой скрипт может сработать, если вы используете оболочку Unix. Он перебазирует каждую ветвь в master.

for BRANCH in `ls .git/refs/heads`; do git rebase master $BRANCH; done
7
ответ дан 1 December 2019 в 14:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: