Есть ли правильный способ "синхронизировать" ветви и хранить их отдельно? - PullRequest
0 голосов
/ 26 июля 2010

Итак, я создал новую ветку из master и в итоге слил изменения обратно, только некоторые изменения, казалось, слились, и казалось, что я слился в одном направлении. В конце концов я просто решил убедиться, что мастер получил все «экспериментальные» изменения, затем я удалил экспериментальную ветку и сделал новую. Таким образом, этот вопрос внезапно превращается в несколько вопросов:

1) Как сопоставить ветки, но разделить их?

1a) Это плохая практика - не просто создавать новую ветку?

2) Почему после одного слияния ветви не были одинаковыми?

2a) Должен ли я вызывать слияние только того, для которого я хочу получить все изменения?

1 Ответ

1 голос
/ 26 июля 2010

Что касается практического, слияние, безусловно, является односторонней операцией. Он сливает одну ветку в другую. Результирующая история после слияния эксперимента с мастером будет выглядеть так:

- o - o - o - o - o - X (master)
   \                 /
    o - o - o - o - o (experimental)

Итак, после одного слияния мастер содержит все изменения, сделанные в эксперименте, но они явно не совпадают.

Я немного озадачен тем, что именно вы имеете в виду под "совпадайте, но держитесь отдельно". Обычной практикой является создание ветки темы для какой-то конкретной цели (функция, исправление ...), а затем объединение ее везде, где требуется эта сущность. Например, исправление может относиться к двум старым выпускам обслуживания, а также к текущему мастеру, поэтому оно будет объединено со всеми тремя.

Я думаю, этот пост в блоге Хунио Хамано (он в настоящее время поддерживает git) - одно из лучших объяснений, которые я нашел, когда именно вам следует объединяться, а когда нет. Это должно ответить на большинство ваших философских вопросов.

...