Прежде всего, git revert
здесь неправильная команда.Это создает новый коммит, который возвращает старый.Это не то, что вы просите.Во-вторых, похоже, что вы хотите вернуть HEAD
вместо HEAD^
.
Если вы нигде не нажимали это, вы можете использовать git reset --hard HEAD^
, чтобы выбросить последний коммит (это также отбрасываетлюбые незафиксированные изменения, поэтому убедитесь, что у вас нет того, что вы хотите сохранить).Предполагая, что вы в порядке с конфиденциальной информацией, присутствующей в вашей копии , и ни с кем другим, все готово.Вы можете продолжать работать, и последующее git push
не будет подталкивать ваш плохой коммит.
Если это небезопасное предположение (хотя, если бы не я, я бы хотел услышать почему), то вам нужно истечьПереблокируйте и форсируйте сборку мусора, которая собирает все выдающиеся объекты прямо сейчас.Вы можете сделать это с помощью
git reflog expire --expire=now --expire-unreachable=now --all
git gc --prune=now
, хотя это следует делать только в том случае, если вам действительно необходимо это сделать.
Если вы выдвинули свой коммиттогда вам не повезло.Вы можете сделать принудительный толчок, чтобы вернуть его удаленно (хотя только если удаленная сторона позволяет это), но вы не можете удалить сам коммит из базы данных удаленной стороны, поэтому любой, кто имеет доступ к этому хранилищу, может найти его, если онзнать, что искать.