Ответ 1
Чтобы удалить последние два коммита локально, я бы предложил использовать:
git reset --hard HEAD^^
Rebase - совершенно другая операция, которая вам не поможет.
Я пытаюсь удалить последние 2 коммита в одном из своих репозиториев GitHub. Я пробовал, как предлагалось здесь: git push -f origin HEAD ^^: master. Кажется, что он работает, последние два фиксации удаляются.
Затем я удалил их из своего локального репозитория с помощью git rebase -i HEAD ~ 2. Я удаляю строки, которые связаны с этими фиксациями, и проверяем с помощью журнала git, что они правильно удалены.
После этого я вношу некоторые изменения в свой локальный репозиторий, делаю новый коммит и нажимаю на GitHub. Проблема в том, что в моей учетной записи GitHub у меня есть две предыдущие фиксации, которые я пытался удалить.
Я думаю, что проблема в моем локальном репозитории, потому что если я клонирую свой репозиторий Github для своего локального пользователя и сделаю некоторые изменения здесь, когда я нажимаю новый коммит, то старые коммиты не помещаются в GitHub.
Любая идея?
Чтобы удалить последние два коммита локально, я бы предложил использовать:
git reset --hard HEAD^^
Rebase - совершенно другая операция, которая вам не поможет.
Если вы хотите удалить 2 (две) последние фиксации, для этого есть простая команда:
git reset --hard HEAD~2
Вы можете изменить 2
для любого количества последних коммитов, которые вы хотите удалить.
И чтобы направить это изменение на удаленный, вам нужно сделать git push
с параметром force (-f
):
git push -f
Однако я не рекомендую выполнять любую команду git
с параметрами -f
или --hard
, если есть новые коммиты на удаленном (Github) после того, как это совершает то, что вы хотите удалять. В этом случае всегда используйте git revert
.
Следующие работы для меня
git reset HEAD~n
Он удаляет последний n
совершает локальное репо, поскольку HEAD^
удаляет только один. Если вам нужно удалить эти изменения с удаленного устройства, вам может потребоваться принудительное нажатие, поскольку вы будете за удаленным.
git push -f origin <branch>