Ветка слита, но не удалена
В приведенном ниже Gitflow,
после того, как ветвь релиза успешно объединена с основной ветвью, ветвь релиза также объединена с ветвью разработки, чтобы обновить исправления, указанные во время слияния релиз-мастера.
Производственные исправления для этого выпуска будут даны в ветке Release и других ветвях.
Проблема заключается в том, что если ветвь Release объединена с веткой Develop, но не удалена, то ветвь Develop не может быть удалена (в будущем) после того, как разработчики закончили со своим проектом. В конце концов, ветвь Develop будет заканчиваться слиянием нескольких веток Release, но не удалением... В любом случае, если в репозитории нет разработчика, тогда у Git должна быть только ветка Master и несколько веток Release.
Может ли какая-либо ветка (скажем, Release) находиться в состоянии, в котором она объединена, но не удалена?
1 ответ
Можно ли объединить какую-либо ветку (скажем, Release), но не удалить?
Слияние и удаление являются полностью независимыми действиями. Несмотря на то, что есть некоторая защита, чтобы избежать ее непреднамеренного использования, несжатые ветви могут быть удалены. И объединенные ветви не удаляются автоматически в git
,
Github имеет возможность автоматически закрывать объединенные ветви, но это происходит "над" уровнем git в бизнес-логике github.
В конце концов, ветвь Develop будет заканчиваться слиянием нескольких веток Release, но не удалением... В любом случае, если в репозитории нет разработчика, тогда у Git должна быть только ветка Master и несколько веток Release.
Вы, кажется, хотите, чтобы существование ветвей отражало что-то значимое. Это решение остается за вами и вашими коллегами. Но учтите следующее: пока существует ветвь, можно увидеть ее связь с другими ветвями (наиболее непосредственно git diff
и, видя, какие ветви являются главой и / или позади каких других ветвей). Как только ветвь исчезнет, такое сравнение не может быть сделано. Поэтому вам решать, является ли удаление веток вашим любимым способом выразить работу в процессе.
Я, например, выступаю за непрерывную интеграцию с несколькими долгоживущими ветвями (например, разработка -> мастер), отмечая точки в мастере, если вы решите сокращать релизы, и удаляя недолговечные ветки объектов после их объединения в разработку, когда это удобно., Но я бы никогда не предположил, что их существование или, если уж на то пошло, отсутствие, что-то значат. git
можете сказать мне точно, в чем различия. Я бы придерживался этого. Удаление ветвей функций - это задача обслуживания, которая не создает быстрого интереса при отложении на неопределенный срок.