Ведущее устройство слияния МЕРЗАВЦА в ответвление

Я разрабатывал новую возможность на новом ответвлении, и на стороне фиксировали довольно много изменений на моем основном ответвлении.

Действительно ли возможно объединить основное ответвление в мое новое ответвление, чтобы усовершенствовать его так, чтобы у меня не было слишком многих конфликтов слияния, после того как новая возможность закончена?

50
задан 08.11.2016, 08:05

1 ответ

Вы можете также git merge master или git rebase master, в этом случае я предпочел бы перебазу мерзавцев.

Поскольку git rebase делает его, как будто изменения на ответвлении функции были внесены сверх изменений на основном ответвлении, которое делает график версии более простым.

Переоснова

Взятие примера от мерзавца повторно основывает руководство, git rebase master в ответвлении feature:

      A---B---C feature                             A'--B'--C' feature
     /                   --rebase-->               /
D---E---F---G master                  D---E---F---G master

Однако git rebase только подходит, когда ответвление не было распределено, или будет беспорядок и дополнительная работа в нисходящем направлении, потому что старые фиксации A, B, C теперь заменяются новыми фиксациями', B', C', плюс F и G, которые не были там прежде.

Фактический результат после git rebase master в ответвлении feature это:

      ( A---B---C )
       /
      /       A'--B'--C' feature
     /       /
D---E---F---G master

Фиксации A, B, C свисают после переосновы, но достижимы через git reflog feature.

Слияние

Если кто-то вытянул Ваше ответвление, или Вы продвинули его где-нибудь, необходимо объединиться в него вместо этого, для предотвращения беспорядка и дополнительной работы над другим концом. Посмотрите Восстановление с восходящей переосновы.

Это - результат git merge master в ответвлении feature:

      A---B---C feature                    A---B---C---M feature
     /                   --merge-->       /       ,---’
D---E---F---G master                 D---E---F---G master

С другой стороны, если Вы git merge feature в ответвлении master, это было бы похоже на это:

      A---B---C feature                    A---B---C feature
     /                   --merge-->       /         \
D---E---F---G master                 D---E---F---G---M master
57
ответ дан 07.12.2019, 08:29

Теги

Похожие вопросы