Існує маса способів, наприклад:
якщо ви ще не підштовхнули публічне зобов'язання:
git reset HEAD~1 --soft
Ось так, зміни вашої фіксації будуть у вашому робочому каталозі, тоді як ОСТАННІ коміти будуть видалені з вашої поточної гілки. Дивіться людину скидання git
У разі , якщо ви зробили поштовх публічно (на гілці під назвою «майстер»):
git checkout -b MyCommit //save your commit in a separate branch just in case (so you don't have to dig it from reflog in case you screw up :) )
повернути комісію нормально і натиснути
git checkout master
git revert a8172f36 #hash of the commit you want to destroy
# this introduces a new commit (say, it's hash is 86b48ba) which removes changes, introduced in the commit in question (but those changes are still visible in the history)
git push origin master
Тепер, якщо ви хочете, щоб ці зміни були внесені під час локальних змін у вашій робочій копії ("щоб ваша локальна копія зберігала зміни, внесені в цій комісії") - просто скасуйте команду відновлення повернення за допомогою --no-commit
параметра:
git revert --no-commit 86b48ba (hash of the revert commit).
Я створив невеликий приклад: https://github.com/Isantipov/git-revert/commits/master