Git обнаруживает сквош и слитые ветви - PullRequest
4 голосов
/ 18 марта 2019

Я хочу знать, есть ли способ определить, была ли объединена сжатая (удаленная после утверждения запроса на извлечение) ветвь разработки.Обычно я использую

git branch --merged

Однако, похоже, это не работает из-за сжатия.

1 Ответ

4 голосов
/ 18 марта 2019

Короткий ответ: общего, но надежного способа определения нет.

Во многих конкретных случаях это легко определить, сравнив содержимое нового коммита, добавленного в восходящий поток.хранилище для содержимого предложенного вами слияния.То есть в вашем хранилище - и / или в клоне, который вы контролируете на GitHub, если вы и они произвели слияние через GitHub - у вас есть:

...--G--H   <-- origin/somebranch, upstream/somebranch
         \
          I--J--K   <-- feature/yours

Они использовал "squash and merge", чтобы объединить три ваших коммита I, J и K в один большой IJK коммит, который они добавили после коммита H, так что их *Репозиторий 1020 * теперь читает:

...--G--H--IJK   <-- somebranch

Содержимое - например, связанный снимок - коммита IJK точно соответствует содержимому (снимок) вашего коммита K,и сообщение журнала commit IJK - это то, что говорит вам, что они объединены в сквош feature/yours.Итак, теперь вы знаете, что с ними можно безопасно синхронизироваться и удалить feature/yours, используя вместо этого IJK.

Однако, если они добавили IJK после некоторого другого коммита L, они теперь имеют:

...--G--H--L--IJK   <-- somebranch

В этом случае снимок для коммита IJK совпадает с тем, что вы получите, если бы вы выбрали их L или слили ваш feature/yours с upstream/somebranch после извлечения.Обнаружить это сложнее.Это может быть автоматизировано во многих случаях, но, к примеру, на GitHub нет щелкающей кнопки.Более того, такая автоматизация потерпит неудачу , если они должны будут изменить вашу работу, чтобы сделать их IJK - хотя, к счастью (?) Для вас, большинство разработчиков не сделают этого, заставив васчтобы адаптировать вашу последовательность I-J-K самостоятельно, перебирая или объединяя в любом случае.:-) В этом случае мы возвращаемся к более ранней ситуации, когда ваш адаптированный коммит кончика ветки совпадает с тем, который они делают с их операцией сквош-слияния.

Как Джо Филлипс говорит в комментарии вся эта практика раздавливания несколько сомнительна.Я бы не пошел так далеко, чтобы сказать, что он должен никогда не использоваться, но я бы сказал, что это должно быть редко, а не нормой в большинстве ситуаций.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...