«Сложный» сценарий слияния в Git - PullRequest
3 голосов
/ 04 февраля 2011

Меня спросили, возможно ли следующее в Git, и это мне не известно:

Учитывая следующий сценарий:

  • Я создаю новую ветку "cool-feature" из транка и выполняю в ней работу
  • Я делаю еще одну ветку "fancy-extension" из "cool-feature" и выполняю в ней некоторую работу

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

MASTER
   \
    cool-feature
     \
     fancy-enhancement

Для меня имеет смысл, что это должно быть возможно, но я не уверен, как бы я получил разницу между двумя ветвями.

1 Ответ

5 голосов
/ 04 февраля 2011

Используйте "git diff branch1..branch2", затем объедините различий, которые он выдает, или лучше "git log branch1..branch2", а затем выберите нужные коммиты.

Я думаю, что лучший вариант, особенно если у вас много коммитов, это использовать интерактивный ребаз . Методы diff и log я бы использовал, только если бы у меня было несколько коммитов или меньше (на самом деле я бы вообще не использовал метод diff, потому что вы потеряли бы свои сообщения журнала).

Просто убедитесь, что вы делаете все это на новой ветви, а не непосредственно на главной, так что вы можете откатиться, если она сломается

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