Я сделал ошибку, сделав ребаз, чтобы объединить мою ветку с последней версией ветки, на которой она была основана.Я говорю «ошибка», потому что я не понимал, что позже это будет труднее (например, git pull вызывает серьезные конфликты там, где их не должно быть, а git push требует силы).
Это то, что я делал до сих пор:
$ git checkout major_branch
$ git pull
$ git checkout my_branch
make some changes and commits.
$ git rebase major_branch
make some changes and commits.
$ git push --force
Теперь мне нужно получить последние изменения из major_branch (снова).Никто, кроме меня, не работал над my_branch.
Как бы я сделал это без катастрофы?
Т.е. могу ли я сделать ребаз более одного раза?
Могу ли я вернуться к слиянию и отказаться?перебазирования?
Это правильный путь?:
$ git checkout major_branch
$ git pull // does this only pull major_branch, or all branches from origin?
$ git checkout my_branch // my_branch exists locally and on origin. what if they are different?
$ git merge major_branch // is this the correct "way round"?
$ git push --force . // push my_branch back to server in case my local machine dies.
Если major_banch, который является моим "родителем", устареет, и теперь все используют "major_branch2", каковы мои варианты?Могу ли я просто сделать «git rebase major_banch2»?
В какой-то момент мне нужно вернуть свои изменения в major_branch.Как мне это сделать?Могу ли я сделать что-то вроде:
$ git checkout major_branch
$ git pull // does this only pull major_branch?
$ git merge my_branch // is this the correct "way round"?
fix merge conflicts
$ git commit
$ git push // do I need to force?
В качестве другого варианта, есть ли способ выйти из моей текущей ситуации с перебазированием?Т.е. попасть в ситуацию, в которой у меня есть моя личная ветвь функций со всеми моими изменениями, а также со всеми изменениями из major_banch, но не с перебазированием, так что я могу просто использовать слияние, вытягивание и повторное нажатие (т. Е. «Нормальный» рабочий процесс)?