Ветка слита, но не удалена - PullRequest
0 голосов
/ 18 января 2019

В приведенном ниже Gitflow,

enter image description here

после Релиз ветвь успешно объединена с master ветвь, Релиз ветвь также объединена с Разработка ветвь для обновления данных исправлений во время слияния Release-Master.

Исправления производственных ошибок для этого выпуска будут предоставляться ветвью Ветвь выпуска и другими ветвями, а также

Проблема в том, что если ветка Release объединена с веткой Develop , но не удалена, то ветка Develop не может быть удалена (в будущем) после завершения работы разработчиков с их проектом. В конце концов, ветка Develop будет содержать несколько веток Release , слитых, но не удаленных ... В любом случае, если в репозитории не работает разработчик, Git должен иметь ветвь Master и несколько ветвей Release только ветки.


Может ли какая-либо ветка (скажем, Release ) находиться в состоянии, в котором она объединена, но не удалена?

1 Ответ

0 голосов
/ 18 января 2019

Можно ли объединить любую ветвь (скажем, Release), но не удалить?

Слияние и удаление - совершенно независимые действия.Несмотря на то, что есть некоторая защита, чтобы избежать ее непреднамеренного использования, несжатые ветви могут быть удалены.И объединенные ветви не удаляются автоматически в git.

. В Github есть возможность автоматически закрывать объединенные ветви, но это происходит «над» уровнем git в бизнес-логике github.

В конце концов, ветвь Develop закончится множеством веток Release, объединенных, но не удаленных ... В любой момент, если в репозитории нет разработчика, тогда у Git должна быть ветка Master.и только несколько веток Release.

Кажется, вы хотите, чтобы существование ветвей отражало что-то значимое.Это решение остается за вами и вашими коллегами.Но учтите следующее: пока существует ветвь, можно увидеть ее связь с другими ветвями (наиболее непосредственно по git diff и по тому, какие ветви являются главой и / или позади каких других ветвей).Как только ветвь исчезнет, ​​такое сравнение не может быть сделано.Поэтому вам решать, является ли удаление веток вашим любимым способом выразить работу в процессе.

Я для одного чемпиона: непрерывная интеграция с несколькими долгоживущими ветвями (например, разработка -> мастер), маркировка точек в мастере, если вы решите сокращать релизы, и удаление короткоживущих ветвей объектов после того, как они былислились в разработке, когда это удобно.Но я бы никогда не предположил, что их существование или, если уж на то пошло, отсутствие, что-то значат.git может сказать мне точно, в чем различия.Я бы придерживался этого.Удаление ветвей функций - это задача обслуживания, которая не создает быстрого интереса при отложении на неопределенный срок.

...