Мы используем git и имеем ветки ветки ветки и разработчика. Мне нужно добавить новую функцию, а затем переустановить коммиты для управления, а затем нажать master на CI-сервер.
Проблема в том, что если у меня возникли конфликты во время rebase, я не могу нажать на мою ветку удаленного разработчика (в Github) после завершения переадресации, пока я не вытащу удаленную ветку. Это приводит к дублированию транзакций. Когда конфликтов нет, работает как ожидалось.
вопрос: после переустановки и разрешения конфликтов, как мне синхронизировать мои локальные и удаленные ветки разработчиков без создания повторяющихся коммитов
Настройка:
// master branch is the main branch
git checkout master
git checkout -b myNewFeature
// I will work on this at work and at home
git push origin myNewFeature
// work work work on myNewFeature
// master branch has been updated and will conflict with myNewFeature
git pull --rebase origin master
// we have conflicts
// solve conflict
git rebase --continue
//repeat until rebase is complete
git push origin myNewFeature
//ERROR
error: failed to push some refs to '[email protected]:ariklevy/dropLocker.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Merge the remote changes (e.g. 'git pull')
hint: before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
// do what git says and pull
git pull origin myNewFeature
git push origin myNewFeature
// Now I have duplicate commits on the remote branch myNewFeature
ИЗМЕНИТЬ
Итак, похоже, что это нарушит рабочий процесс:
developer1, работающий над myNewFeature разработчик2 работает над своим новым оба используют мастер как основную ветвь
developer2 объединяет myNewFeature в егоNewFeature
developer1 переустанавливает, разрешает конфликты, а затем принудительно нажимает на удаленную ветку для myNewFeature
через пару дней, разработчик2, снова объединит myNewFeature в егоNewFeature
Это заставит других разработчиков ненавидеть разработчика1?