Git: перемещать изменения между ветвями без изменения рабочего каталога

Пример использования: каждый раз, когда я хочу переместить фиксацию из одной ветки git в другую, я выполняю следующую последовательность действий:

  1. [зафиксировать в рабочую ветку]
  2. git checkout ветвь для объединения в
  3. git cherry-pick target-commit
  4. git push
  5. git checkout working-branch

Это прекрасно работает с единственным исключением - каждый раз, когда я выполняю 'git checkout', содержимое рабочего каталога git изменяется (ожидается), и это заставляет мою IDE (IntelliJ IDEA) выполнять обновление внутреннего состояния (поскольку отслеживаемая файловая система поддерево изменено внешне). Это действительно раздражает, особенно в случае большого количества мелких коммитов.

Я вижу два пути:

  1. выполнить «массовую выборку вишен», т.е. выполнить большое количество коммитов; переместите их в другую ветку, скажем, в конце рабочего дня;
  2. имеют второй локальный репозиторий git и выбирают его, т.е. каждый раз, когда фактическая фиксация и отправка выполняется в рабочую ветку, перейдите во второй репозиторий, извлеките изменения и выполните там выбор вишни

Мне не нравится первый подход, потому что можно забыть переместить конкретный коммит. Второй выглядит немного ... неестественно.

В принципе, было бы идеально, если бы я мог сказать git «переместить этот коммит из ветки с именем branchX в ветку branchX + 1» без обновления рабочего каталога.

Вопрос : возможно ли выполнить вышеуказанное?

15
задан Daniel Serodio 18 March 2013 в 22:19
поделиться