Я нашел другой способ, который предотвращает любое противоречивое слияние при сборке вишни, которое IMO легко запомнить и понять.Так как на самом деле вы выбираете не коммит, а часть его, вам нужно сначала разделить его, а затем создать коммит, который соответствует вашим потребностям, и выбрать его.
Сначала создайте ветку изКоммит, который вы хотите разделить и оформить его:
$ git checkout COMMIT-TO-SPLIT-SHA -b temp
Затем верните предыдущий коммит:
$ git reset HEAD~1
Затем добавьте файлы / изменения, которые вы хотите, в cherry-pick:
$ git add FILE
и зафиксируйте его:
$ git commit -m "pick me"
запишите хеш коммита, давайте назовем его PICK-SHA и вернемся к вашей основной ветке, например, master для принудительной проверки:
$ git checkout -f master
и cherry-pick коммит:
$ git cherry-pick PICK-SHA
теперь вы можете удалить временную ветку:
$ git branch -d temp -f