Git - применить фиксацию на другой ветке к рабочей копии

поэтому у меня есть фиксация, которая имеет полезное изменение кода, но на другой ветке.

Я хотел бы применить эту фиксацию в другой ветке к моей рабочей копии в моей текущей ветке (а не в качестве другой фиксации).

Возможно ли это? Как мне это сделать?

Думаю, что я поделился бы этим, связанным с моим предыдущим вопросом, но специфичным для рабочей копии: git выбор вишни в одной ветке в другую ветку

Ответ 1

Как добавить требуемые фиксации в другую ветку.

git cherry-pick <SHA-1>...<SHA-1> --no-commit

Примените изменение, внесенное фиксацией (-ами) в конец ведущей ветки, и создайте новый фиксатор с этим изменением.

Синтаксис ... - это диапазон фиксации. захватить все коммиты от начала (исключая) до последнего. Если вы хотите, чтобы одна фиксация использовала один SHA-1

введите описание изображения здесь


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

Ответ 2

Вы все равно можете использовать команду git cherry-pick. См. git cherry-pick --help:

   -n, --no-commit
       Usually the command automatically creates a sequence of
       commits. This flag applies the changes necessary to
       cherry-pick each named commit to your working tree and the
       index, without making any commit. In addition, when this
       option is used, your index does not have to match the HEAD
       commit. The cherry-pick is done against the beginning state
       of your index.

Итак, вы можете просто git cherry-pick -n <commitid>, и изменения будут применены к вашему рабочему каталогу и поставлены в индексе (например, git -a), но не будут зафиксированы.