Слияние ветки РАЗВИВАЕТСЯ в мастер ветки, по дате?

#git

#git

Вопрос:

У меня есть 2 ветки, ветка DEVELOP и ветка master .

Я бы хотел объединить ветку DEVELOP в ветку master по дате, поэтому все изменения вплоть до и включая говорят Sept 15, 2020 at 4pm

Как я могу это сделать?

Обратите внимание, что ветка DEVELOP не является локальной веткой. У него было много коммитов от многих разработчиков, и все они были отправлены на удаленный сервер.

Ответ №1:

Имя ветки — это просто удобный способ сослаться на последний коммит в этой ветке. Вы можете указать любой коммит для git merge команды.

Предположим, что ветви выглядят так:

 A---B---C (master)
         --D---E---F---G (DEVELOP)
  

и предположим, что E это последний коммит в нужном вам диапазоне дат, тогда master вы можете запустить

 git merge E
  

Вы, наверное, знаете это, но для полноты картины: вы можете найти последний коммит до определенной даты, используя --until опцию --before (или ) для git log . Это принимает самые разные форматы, включая именно то, что вы указали в вопросе:

 git log --until="Sept 15, 2020 at 4pm"
  

Ответ №2:

Вы можете cherry-pick совершать коммиты по диапазону:

 git cherry-pick A^..B
  

Это применит изменения от фиксации A до фиксации B (включительно).