Посмотрим. (Это предполагает, что пульт дистанционного управления с именем origin
)
git fetch origin master
git rebase origin/master develop
git checkout master && git merge --ff-only develop
git push
ноты:
git rebase origin/master develop
точно так же, как git checkout develop && git rebase master
Я использую --ff-only
при объединении для ясности, потому что это слияние не будет создавать любые новые коммиты, просто переместите указатель ветки.
Итак, исходный новый код еще 4 строки, но проверка появляется только один раз. Возможно, вы сможете немного уменьшить количество проверок, используя идеи от this question, но я проигнорирую это.
Вы можете дополнительно уменьшить typeing (но не GIT времени выполнения), создавая GIT псевдоним с несколькими командами (as seen here), начиная псевдоним с восклицательным знаком (!
).
Вы можете создать псевдоним, как так:
git config --global alias.pushDevelop '!git fetch origin/master; git rebase origin/master develop; git checkout master; git merge --ff-only develop; git push'
Вы бы затем использовать команду таким образом: git pushDevelop
.
Вы также могли бы заменить третью строчку с git branch -f master
и воссоздать master
ветвь на develop
отрасли, но это может привести к потере данных трекинга. (Эта команда заставляет создать ветвь master
. Требуется -f
, так как git не может иметь две ветви с тем же именем.