Непрерывная перебазировка ветки git из master приводит к дублированию - PullRequest
0 голосов
/ 05 июля 2018

У меня есть ветка релиза, которая ветвится от master. И в ветке релиза будет несколько локальных коммитов. Мне нужно синхронизировать ветку релиза с master. Поэтому каждое утро я запускаю сценарий со следующими шагами:

  1. git checkout releasebranch
  2. git rebase -Xtheirs master (Xtheirs, чтобы локальные изменения в ветвях выпуска переопределялись в случае конфликтов)
  3. git pull origin releasebranch --rebase (чтобы сохранить мои локальные коммиты на месте после ребазинга)
  4. git push origin releasebranch

Это приводит к дублированию коммитов, и в ветке master есть много различий. Любая подсказка, следую ли я правильному методу, чтобы синхронизировать ветку?

Примечание
а. Мне нужно запустить автоматический скрипт для синхронизации, поэтому разрешение конфликтов вручную нецелесообразно. Вот почему используется Xtheirs опция.
б. Попробовал git merge -Xours master и это чертовски много конфликтов.
с. У меня есть другая ветвь, которая синхронизируется с мастером с помощью команды git rebase -s ours master, и она работает нормально. Но в этом случае мне нужны локальные изменения в releasebranch, чтобы переопределить изменения в master.

1 Ответ

0 голосов
/ 05 июля 2018

Твой третий и четвертый шаги кажутся мне подозрительными. В идеале, если вы используете рабочий процесс rebase для releasebranch, вы будете единственным, кто использует эту ветку. Поэтому второй шаг имеет смысл, потому что именно так вы идете в ногу со временем master. Но я не уверен в синхронизации с другими изменениями, поступающими от людей, разделяющих эту ветку.

На четвертом шаге, поскольку вы, возможно, переписали историю releasebranch, в большинстве случаев произойдет сбой:

git push origin releasebranch

Вместо этого вам нужно заставить нажать ветку релиза через:

git push --force origin releasebranch

Поэтому, возможно, совет состоит в том, чтобы, возможно, исключить шаг 3, а затем принудительно нажать на четвертом шаге.

...