Может ли сбор вишни из ветки вызвать проблемы с переброской этой ветки к мастеру? - PullRequest
1 голос
/ 28 августа 2011

Контекст : у меня есть экспериментальная ветка crazy-idea, где я делал некоторые дикие вещи в выделенном поддиректории madness/{src,docs}.Тонна коммитов, с заметками, картинками, хакерскими сценариями для создания сюжетов.Теперь, когда я полностью понял, что я делаю, пришло время редактировать фактические исходные файлы в src/, добавляя новые функции и изменяя существующие.

Поскольку беспорядок в crazy-idea загромождает историюmaster, была создана новая ветка good-idea для объединения изменений в src/ в master.Convince предлагает мне изменить файлы в src/, все еще находящиеся в crazy-idea, а затем выбрать коммиты изнутри good-idea.

Теперь мой вопрос : учитывая, что good-idea был объединен с мастером, и после этого события были выполнены некоторые коммиты в мастере.Когда я возвращаюсь к crazy-idea для дальнейшей проработки некоторого другого аспекта моей идеи, можно ли ожидать неприятностей в src/ при переходе к мастеру?

Альтернатива - оставить src/ в пределах crazy-idea, сделайте копию вспомогательного каталога и посмотрите на мои заметки таким образом, кодируя непосредственно в good-idea.

Что вы, ребята, считаете умнее?

РЕДАКТИРОВАТЬ Что ж, как и ожидалось, у меня возникли конфликты во время

git rebase master

в crazy-idea.В будущем я внесу изменения только в одну ветвь и буду использовать сбор вишни только тогда, когда знаю, что он более или менее заброшен.

РЕДАКТИРОВАТЬ Я решил свою ситуацию следующим образом:N фиксирует изменения в src/.Допустим, последний не изменяющий src/ коммит имел сообщение 'foobar'.После сбоя перебазировки:

$ git rebase --abort
$ git reset --hard HEAD^
HEAD is now at ...
# more hard resets, I think actually N
HEAD is now at ... foobar
$ git rebase master
First, rewinding head to replay your work on top of it...
Applying ..
...

Готово.Очевидно, это не так просто, как я надеялся, но и не так уж плохо.Я думаю, что я пойду по этому пути вместо копирования madness/.

1 Ответ

2 голосов
/ 28 августа 2011

У Git не должно быть особых проблем с согласованием вишневых кирок.При перебазировании Git будет игнорировать любые коммиты (и даже фрагменты в разнице коммитов), которые вносят изменения, которые уже были внесены в целевую ветвь.

...