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
), но не будут зафиксированы.
Ответ 3
git show SHA -- file1.txt file2.txt | git apply -
или все файлы из SHA
git show SHA | git apply -
Как сделать git-cherry-pick только изменения для определенных файлов?