Способ сброса головы и возврата к предыдущей фиксации - через
$ git reset HEAD^ --hard
$ git push <branchname> -f
Но иногда это может быть не принято в удаленной ветке:
To ssh:<git repo>
! [rejected] develop -> develop (non-fast-forward)
error: failed to push some refs to 'ssh:<git repo>'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
затемДругой способ сделать это -
git revert HEAD
git push <remote branch>
. Это прекрасно работает.
ПРИМЕЧАНИЕ: запомните, если произошел сбой git push -f <force>
, а затем попытайтесь вернуться.Выполните git pull
до того, как удаленный и локальный синхронизируются, а затем попробуйте git revert
.
Проверьте с помощью git log
, чтобы убедиться, что удаленный и локальный находятся в одной точке фиксации с тем же SHA1 ..
git revert
A --> B --> C -->D
A--> B --> C --> D --> ^D(taking out the changes and committing reverted diffs)