Я новичок в Git и пытаюсь понять, как лучше всего обновлять базу кода с учетом последних изменений в основной ветке. Вот моя ситуация - я работаю над функцией, скажем, функцией А, и я создаю ветку из своего мастера с именем функция А, используя git checkout -b featureA
.
Я понимаю, что на данный момент функция А является моей локальнойветвь, такая же, как локальная главная ветвь (потому что именно там я и разветвлялся). Я добавляю свои изменения в свою локальную ветку и в конце дня я фиксирую свои изменения и отправляю их в свою удаленную ветку (origin / featureA).
На следующий день я хочу продолжить работу над FeatureA, откудаЯ остановился. Поэтому я перебазирую свою ветку featureA последним мастером. Для этого я использую,
git fetch
git rebase -i origin/master
Обычно это работает нормально. Но снова в конце второго дня, когда я пытаюсь отправить свои последние изменения в мою удаленную ветку (origin / featureA), я не могу этого сделать, и я получаю следующее сообщение -
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
Я пыталсяпроталкивая мои изменения с помощью git push -f
, но даже это не помогло.
Однако, если я объединяю основную ветвь с моей ветвью функций (а не перебазирую основную ветвь), я могу перейти к удаленной функцииответвление.
Пожалуйста, помогите мне понять -
Является ли rebase хорошим вариантом при работе в большой команде? Если да, то как избежать ситуации выше? Если нет, то какова другая альтернатива?