2016-04-19 3 views
1

У меня вопрос о Git, который мне никогда не приходилось делать, поэтому я хотел бы узнать!Git merge совершает выборочно

В моем проекте я разветвил master a назад; это, по сути, переписывание всей кодовой базы, поэтому назовем ее rewrite. В то время, когда я работал над rewrite, я также внедрил и внедрил некоторые существенные изменения в master. Теперь, когда моя переписка подходит к концу, я хочу довести ее до скорости со всеми изменениями, сделанными на мастере, так как я начал ветвь.

Обычно я делал что-то вроде git checkout rewrite && git rebase master, а затем решал конфликты по мере их возникновения, но на этот раз я могу гарантировать, что каждая фиксация имеет конфликт, так как кодовая база совершенно другая.

Т.Л., др Что мне интересно, как я хотел бы идти о принятии каждой фиксации на master и один за одним сливая их в rewrite, так что я мог бы сделать это в своем собственном темпе и, возможно, вышел из строя, если требуется.

ответ

1

Вы можете использовать команду git cherry-pick, чтобы добавить конкретную фиксацию в свою ветку.

Вы также можете использовать gitk --all, чтобы просмотреть все коммиты и выбрать, какой фиксатор вы хотите интерактивно вибрировать в свою ветку.

+0

Для дополнительной страховки вы можете «переустановить проверку и & g git checkout -b rewriteMerge», которая даст вам идентичную ветку, чтобы начать и выполнить вашу вишневую подборку. Таким образом, если что-нибудь, в любом случае, идет не так, немного легче вернуться туда, где вы были. Конечно, есть и другие методы (например, сброс, а затем создание новой ветки на основе финальной команды rewrite commit shaVal), но этот способ дает вам что-то ощутимое и доступное, просто меняя ветви. – tniles09

Смежные вопросы