У меня странная проблема с SourceTree
. Я объединил свою ветку функций с веткой development
, и все было в порядке. Без проблем.
Затем я объединил ветку development
с веткой main
. Он говорит о конфликтах, но не показывает никаких конфликтующих файлов. Когда я продолжаю слияние, оно успешно слилось без каких-либо изменений, обнаруженных в моей функциональной ветке.
Я понял это через некоторое время, потому что, когда я подключаюсь к рабочей БД (чего я обычно не делаю), она показывает схему, отличную от моей локальной основной ветки. Но когда я снова попытался объединить ветку разработки, она не внесла изменения функций, над которыми я работал. Кто-нибудь может это объяснить?
Поскольку функциональная ветвь уже была объединена с dev
, слияние dev
само по себе не требует/извлекает функциональную ветвь (поскольку она уже является частью истории разработки).
Но лучше всего не объединять ветки интеграции (например, dev или main).
Объединяйте только ветки функций (сначала для разработки, а затем объединяйте функции с основной)
Таким образом, у вас есть:
main
)@Seto Моя рекомендация основана на gitworkflow (одно слово). Я считаю это «лучшей» практикой, поскольку она позволяет быть гибким и объединять только то, что вам действительно нужно.
То есть это означает, что ветка разработки и основная ветка могут быть разными, верно? Это звучит против конвенции. Или может я что-то пропустил.
@Seto dev
и main
разные: не все ветки функций, интегрированные (объединенные) в dev
, обязательно являются хорошими кандидатами и/или готовы к main
.
В итоге я удалил свою локальную ветку main
и воссоздал ее из ветки development
. Этот ответ не объясняет, что происходило, поэтому не стесняйтесь добавлять дополнительные ответы.
Хорошие советы по передовой практике +1. Но мое решение объединиться из feature -> development -> main также является советом по лучшей практике, который я получил от Gitflow, если я не ошибаюсь.