Вариант использования: каждый раз, когда я хочу переместить коммит из одной ветви git в другую, я выполняю следующую последовательность действий:
- [зафиксировать в рабочей ветке]
git checkout
ветвление для слияния
git cherry-pick
target-commit
git push
git checkout
рабочая ветвь
Это прекрасно работает, с единственным исключением - каждый раз, когда я выполняю 'git checkout', содержимое рабочего каталога git изменяется (ожидается), и это приводит к тому, что моя IDE (IntelliJ IDEA) выполняет обновление внутреннего состояния (так как отслеживается поддерево файловой системы) внешне доработано). Это действительно раздражает, особенно в случае большого количества небольших коммитов.
Я вижу два пути:
- выполнить «массовый выбор вишни», т. Е. Выполнить большое количество коммитов; переместите их в другую ветку, скажем, в конце рабочего дня;
- иметь второй локальный репозиторий git и выполнять выборки вишни на нем, то есть каждый раз, когда выполняется фактическая фиксация и передача в рабочую ветвь, переходить во второй репозиторий, извлекать изменения и выполнять выборку вишни там;
Мне не нравится первый подход, потому что его можно забыть перенести определенный коммит. Второй выглядит немного ... неестественно.
По сути, было бы идеально, если бы я мог сказать git 'переместить этот коммит из ветви с именем branchX в ветку branch X + 1' без обновления рабочего каталога.
Вопрос: возможно ли выполнить вышеперечисленное?