Лучшее решение для передачи удаленного мастера в удаленную ветку dev без изменений локальной ветки dev - PullRequest
0 голосов
/ 27 февраля 2020

У меня есть две ветви (master для производства и dev для разработки) как на локальном, так и на удаленном.

dev ветка связана с сервером разработки, а master ветка связана с производством сервер.

Я работал как следующий алгоритм.

  1. Я работаю над веткой dev и pu sh для удаленной ветви dev.
  2. Затем я тестирую на сервере разработки и, если все в порядке, я объединяю локальную dev ветку с локальной master веткой.
  3. Затем я пу sh master разветвляю с удаленной master branch.

Во время разработки я столкнулся с одной проблемой, заключающейся в том, что dev-сервер не работает должным образом. Но я думаю, что это не из-за кода. Я думаю, что ошибка будет связана с конфигурацией сервера разработки. Чтобы доказать это, я собираюсь перейти с ветки pu sh master на удаленную ветку dev и проверить, хорошо ли работает сервер разработки с рабочим кодом. Но когда я пытаюсь вставить sh локальный master код ветки в удаленную dev ветку, произошла ошибка.

$ git push origin master:dev
 ! [rejected]        master -> dev (non-fast-forward)
error: failed to push some refs to 'https://gitlab.xxx.xx.xx/xxx.git'
hint: Updates were rejected because a pushed branch tip is behind its remote
hint: counterpart. Check out this branch and integrate the remote changes
hint: (e.g. 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

Я думаю о git push -f, но это единственный решение?

Как лучше всего решить эту проблему? Пожалуйста, помогите мне! Спасибо.

1 Ответ

0 голосов
/ 27 февраля 2020

Обычно, когда вы набираете sh свой локальный master на удаленный dev, он пытается перезаписать ваш удаленный dev на ваш локальный master (то есть заменить его). Поскольку master содержит коммиты слияния, он отличается от dev, в зависимости от способа слияния коммиты различны. Попробуйте объединить свой локальный master (сначала сбросьте локальные dev и master соответственно на удаленные) с локальным dev, а затем pu sh локальный dev на удаленный dev. Может случиться так, что у вас возникнут некоторые конфликты слияния при слиянии master с dev.

Если вы заставите pu sh любую из ваших локальных веток к удаленному (должно быть даже ограничено удаленной настройкой), вы потеряете все который был на удаленном ранее, потому что сила pu sh перезапишет ветвь. Будь осторожен с этим.

...