Как работать с ветками (branch) поочередно (см. описание)?
Например я делаю git pull в master
затем создаю ветку branch-1 переключаюсь на нее и работаю какое-то время
потом переключаюсь на master делаю git pull получаю какие-то изменения в master и создаю новую ветку branch-2
переключаюсь на branch-2, что-то с ней там делаю
потом переключаюсь на master делаю git pull - там снова какие-то изменения получаю в мастер
и у меня вопрос:
а если я сейчас переключусь в branch-1 - она что, будет в том виде, в каком я ее оставил? без новых изменений, привнесенных после нее в master?
а как же тогда быть? а если мне, например, в этой branch-1 как раз нужны те новые фичи которые появились в master?
ну, т.е. понимаете вопрос, да? такая стандартная ситуация, что вот я пишу какие-то модули к приложению, и может кто-то еще их там пишет, а потом сливают в master, и, хорошо бы как-то в branch-1 получить актуальную версию приложения в целом.
Владимир Лучше не давать человеку такой совет, не объясняя когда этого уже НЕЛЬЗЯ сделать (например, когда его бранч стал коллективным - начал использоваться другими, начал проходить ревью и т.д.).
Станислав Макаров, Хм, у нас ревью проходит не бранч а мерж реквест, ну и фичебранчи очень редко бывают коллективными, только по взаимной договоренности и даже в этом случае, просто ждешь когда второй разработчик закончит фичу и потом ты делаешь ребейс мастера и он делает ребейс мастера.
Если коротко, то за 4 года активного использования такой схемы припоминаю только проблемы, которые приносил мерж мастера в свою ветку, а ребейс - ни разу.
а разве так можно? каким образом? у меня branch-1 связан с одноименной веткой на гитхабе, и там то же самое. ааа... или пересвязать его с мастером и пуллить оттуда? но это тогда все равно мержить придется (да?)
Также можно сделать rebase или скопировать коммиты через cherry pick
(для этого есть очень удобная команда `git pull --rebase origin master`, аналог 3х команд (`git checkout master; git pull origin master; git checkout mybrach; git rebase master`)