Работа в большом групповом проекте это наш рабочий процесс:
// create branch
git checkout -b mybranch
(do work)
// commit to branch locally
git commit -a
// push to remote
git push origin mybranch
(repeat)
Когда мы закончим с работой в нашей ветке, мы объединяем ветку в master:
// go to master
git checkout master
// update
git pull master
// merge our branch into master
git merge mybranch
(solve conflicts)
git push
Теперь мы простоПовторите вышеуказанные шаги, и рабочий процесс прошел в течение нескольких дней.Теперь внезапно все получают непереходные обновления на ветвях других участников группы и мастере.Например, кто-то потянул внутрь мастера, затем слился, но он не может нажать.Это говорит, что не ускоренная перемотка вперед.Это очень странно, так как говорит, что мастер полностью в курсе.
Ниже приведено следующее после git pull, git merge mybranch, git push:
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to 'git@github.com:foo/project.git'
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes (e.g. 'git pull') before pushing again. See the
'Note about fast-forwards' section of 'git push --help' for details.
Тем не менее, git pull говорит, что мы в курсе.
Итак, вопрос в том, каков ожидаемый рабочий процесс для большой группы в GIT?Как мы должны иметь дело с механизмом ветвления.
Спасибо!