Нужно ли (или я) удалять мою локальную ветку после перебазирования и слияния с мастером? - PullRequest
0 голосов
/ 18 октября 2011

Я разрабатываю функцию в местном филиале.Я просто перебазировал его и слил свои изменения обратно в основную ветку.Если я хочу продолжить развитие в местном филиале, могу ли я продолжить развитие в существующем?Если я перебазирую с этой веткой, будет ли она перебазировать коммиты с момента последнего слияния или еще раз перебазирует все коммиты, которые были сделаны в этой ветке?один?

Спасибо.

Ответы [ 2 ]

1 голос
/ 18 октября 2011

Да, вы можете продолжить работу в своем местном филиале (скажем, он называется feature), и в любое время вы можете сделать git rebase master, находясь на feature. Единственное предостережение по этому поводу заключается в том, что в общем случае вы не должны перебазировать свою ветвь после того, как вы сделали ее общедоступной (т. Е. Передали ее в другое хранилище или позволили кому-то получить ее из вашего хранилища). Вы должны объединить ветку feature с master только тогда, когда считаете, что разрабатываемая вами функция завершена и протестирована. После этого, если вы хотите добавить другую функцию, я бы создал для нее новую ветвь.

Когда вы запускаете git rebase master, когда вы используете feature, git начинает с рассмотрения каждого изменения в feature, которое не входит в master. (Это приблизительно набор коммитов, которые вы видите из git log master..feature.) Затем он пытается повторно применить изменения, внесенные каждым из этих коммитов в master, но пропускает любые, которые, кажется, уже применены. Смысл этого в вашей ситуации заключается в том, что если вы слили feature в master, а затем сделали еще несколько коммитов на feature, то только те, которые после слияния будут применены повторно в последующей ребазе.

1 голос
/ 18 октября 2011

Вам не нужно каждый раз перезагружать. Потенциально у вас будет гораздо больше конфликтов для разрешения, так как ребаз применяет ваши коммиты по одному. Так что подумайте только о слиянии.

Вторая перебазировка будет перемещать коммиты только после того, как вы слились, если вы укажете ветку темы на новый коммит слияния. Rebase переходит к последнему общему коммиту в истории и перемещает этот диапазон поверх указанной вами ветви.

Примечания:

  1. Перебазирование эффективно меняет историю этой ветки. Если кто-то еще работает над этой веткой, вы удивите их, когда они попытаются внести свои изменения, и Git скажет им, что они не могут! Это по уважительной причине. Им придется перебазировать свою работу, чтобы продвинуть ее вверх. Как видите, это может происходить по кругу, когда все больше людей работают вместе.

  2. Слияние не так плохо, как думают некоторые люди. Поскольку многие люди привыкли к разработке на основе соединительных линий, им нравится видеть хорошую линейную историю. Когда все объединяются, это может выглядеть совсем по-другому! Ответ на этот вопрос заключается в том, что в конечном итоге мы перерастаем необходимость смотреть на линии, соединяющие коммиты, и можем просто полагаться на инструменты, чтобы сообщить нам, что уже объединено, а что еще нужно объединить - независимо от того, какие волосатые линии соединяют все вместе. Вероятно, слияние - это то, что вы оцените по мере увеличения опыта.

  3. Поскольку вы делаете ветвь для своей функции, это хорошее прочтение о процессе, с которым я работаю, и надеюсь, что оно может пролить немного света на плюсы и минусы ветвления на функцию. Надеюсь, вы держите их недолго! ссылка: https://plus.google.com/109096274754593704906/posts/R4qkeyRadLR

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...