выпуск git flow начинается, когда origin / development опережает мою локальную ветвь разработки - PullRequest
0 голосов
/ 28 июня 2018

Это случается со мной время от времени; Я хочу создать ветку релиза из моей ветки разработки, но я уже получил последние коммиты из источника (не объединил коммиты, просто получил их). Моя цепочка коммитов может выглядеть так:

a--b--c(develop, HEAD)--d(origin/develop)

Я могу просмотреть коммит "d", сделанный другим разработчиком, и знаю, что не хочу включать его в новый выпуск, поэтому я сохраняю свой репо в коммите "c" и пытаюсь создать релиз ветка. То, что я хочу, это:

a--b--c(develop)--d(origin/develop)
       \
        --e(release/1.1,HEAD)

Но когда я запускаю git flow release start 1.1, происходит сбой:

Branches 'develop' and 'origin/develop' have diverged.
Fatal: And branch 'develop' may be fast-forwarded.

Насколько я могу судить, я не могу заставить git flow release start на создать ветку релиза или цель, которая обязуется использовать в качестве базы для ветки релиза. Какие у меня есть варианты?

Спасибо, Dan

1 Ответ

0 голосов
/ 28 июня 2018

Согласно оригинальной статье о Git Flow здесь:

https://nvie.com/posts/a-successful-git-branching-model/

Создать ветку релиза так же просто, как:

git checkout -b release-1.2 develop

т.е. простая ветка из текущей ветки разработки.

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

Вы должны быть в состоянии сделать что-то вроде:

git checkout -b release/1.1 <sha1-of-commit>

Где конкретно указывается ша коммита, с которого вы хотите запустить ветку.

Это более подробно рассматривается в этом вопросе SO:

Ветка из предыдущего коммита с использованием Git

...