Из комментариев:
Я вырезал мастер из выпуска
git checkout release/10.0
git checkout -b master
git push
Давайте разберем эти команды по одной:
git checkout release/10.0
Это проверяет ветвь с именем release/10.0
, если эта ветвь существует . Если ветвь еще не существует, git выдаст ошибку:
error: pathspe c 'release / 10.0' не соответствует ни одному из файлов, известных git.
git checkout -b master
Попытка создать новую ветвь с именем master
. Если ветвь master
уже существует, вы должны получить еще одну ошибку:
fatal: ветвь с именем 'master' уже существует.
git push
Это приводит к текущая ветка. Если вы получили вышеуказанную ошибку при попытке создать основную ветвь, то вы получите pu sh release/10.0
.
С учетом всего сказанного эта серия команд кажется странной, потому что если вы используете Git Flow , у вас уже должна быть ветка master
. Вы должны не создавать новый master
каждый раз, когда вы делаете релиз. Вместо этого создайте новую ветку релиза из master:
git checkout -b release/10.0 master
Затем, когда релиз будет готов к развертыванию, вы должны объединить ветку релиза с master:
git checkout master
git merge release/10.0
git push
Если вы сделаете это каждый раз, и это единственный способ добавить коммиты к master
, тогда ваше предположение верно: вы никогда не должны получать никаких конфликтов слияния.
Однако, так как вы видите конфликты слияния, были введены другие коммиты на master
, которых нет в ветке релиза.