Контекст : у меня есть экспериментальная ветка 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/
.