Возврат слияния git, а затем возврат возвращаемого значения

Наша команда использует запросы Github Pull для управления нашим рабочим процессом, как то, что описано здесь. При ручном просмотре принятого запроса Pull нам иногда нужно вернуть это слияние, потому что оно не готово для развертывания на наших производственных серверах.

Однако, если разработчик снова попытается запросить Pull Request, он не узнает, что эти изменения были отменены, и видит, что коммиты уже находятся в главной ветки. Он будет включать только последние коммиты с момента возврата, но мы действительно хотим вернуть ВСЕ из совершенных коммитов, а также их новую работу. Другими словами, нам нравится переиздать оригинальный запрос Pull.

Так как Github не поддерживает эту функцию (т.е. не возвращая слияние, не отменяя/не переписывая исходный запрос на pull), я в настоящее время возвращаю возвращаемое слияние. Это кажется неправильным.

Какие еще способы использовать для достижения той же цели в git? (или Github, если это возможно)

Ответ 1

Я думаю, что ваша проблема возникает из-за того, что, когда вы имеете дело с запросами на pull, вы выбираете автоматическое объединение их на GitHub. Из трех предложенных способов обращения с запросами на pull описанными в документации, вы используете последний ( "Автоматическое слияние" ), который был только недавно реализовано. Лично я считаю, что это подходит только для тривиальных запросов на тягу, которые, очевидно, правильны. Для чего-то более сложного, я бы хотел использовать первый подход, т.е.

  • добавление репозитория реквестеров в качестве нового удаленного
  • выбор из этого удаленного
  • попытка слияния
  • тщательное тестирование
  • нажатие результата, если вы счастливы

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


В качестве интереса, возможно, стоит сказать больше о том, что произойдет, если вы в конечном итоге должны отказаться от смиренного слияния, но все же хотите иметь возможность повторно объединить более позднюю версию этой ветки. Хотя это может показаться неправильным, поскольку я понимаю, что самый простой способ справиться с этой ситуацией - это действительно вернуть обратно. Вы можете найти более подробное обсуждение этой проблемы в этой записи из блога Pro Git и другое обсуждение той же проблемы Linux Torvalds, которая также может быть полезна.

Ответ 2

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

Я предлагаю вам изменить рабочий процесс, чтобы использовать две ветки. Одна устойчивая ветвь (master) и одна ветвь развития (develop). Вся работа идет в ветку develop или в отдельные ветки тем. Запросы на подачу всегда подаются на ветвь develop, после чего они сливаются в develop.

master первоначально разветвляется от develop. Как только develop находится в стабильном состоянии, вы объедините его в master. master - текущий стабильный выпуск.

Это свободно основано на nvie "Успешная Git ветвящаяся модель" .

Ответ 3

Если вы получите полк с полкой для каждой функции, вы можете восстановить кандидат на выпуск с помощью каких функций. Вам не нужно "возвращать слияние":

следующее чтение: https://plus.google.com/109096274754593704906/posts/R4qkeyRadLR

См. комментарии, а также дополнительную информацию. Это работает очень хорошо для нас.