переключитесь на эту ветку, проверьте git log
и git revert
эти коммиты индивидуально. После того, как вы это сделаете, переключитесь обратно на нужную ветку, и там вы сможете использовать git cherry-pick
, чтобы выбрать конкретные коммиты из ссылок git и объединить их в нужную ветку.
git checkout wrong_branch
git revert commitsha1
git revert commitsha2
git checkout right_branch
git cherry-pick commitsha1
git cherry-pick commitsha2
Если коммиты сгруппированы вместе, и после ваших грязных коммитов коммиты не выдвигаются, вы даже можете использовать git reset
, чтобы перевести эту ветку в состояние незадолго до ваших коммитов, а затем повторить это, используя git cherry-pick
, чтобы получить ваши коммиты в правильную ветку.
git checkout wrong_branch
git reset commitsha3 #commit just before commitsha2
git checkout right_branch
git cherry-pick commitsha1
git cherry-pick commitsha2