Я нажал пару коммитов в удаленный репозиторий и обнаружил, что они создают проблемы.
Как я могу вернуться к предыдущей версии? То есть удаление двух последних коммитов?
Я нажал пару коммитов в удаленный репозиторий и обнаружил, что они создают проблемы.
Как я могу вернуться к предыдущей версии? То есть удаление двух последних коммитов?
Поскольку вы уже переместили коммиты в удаленный репозиторий, лучший способ - это, вероятно, вернуть два коммита, чтобы вы не создавали проблем для тех, кто уже вытащил из удаленного репозитория.
В примерах используется следующая история фиксации:
e512d38 Adding taunts to management.
bd89039 Adding kill switch in case I'm fired.
da8af4d Adding performance optimizations to master loop.
db0c012 Fixing bug in the doohickey
Если вы просто хотите вернуть коммиты без изменения истории, вы можете сделать следующее:
git revert e512d38
git revert bd89039
В качестве альтернативы, если вы не хотите, чтобы другие видели, что вы добавили переключатель kill, а затем удалили его, вы можете откатить репозиторий с помощью следующего (однако это вызовет проблемы для других, которые уже вытащили ваши изменения с удаленного ):
git reset --hard da8af4d
git push origin -f localBranch:remoteBranch
где localBranch
- имя локальной ветки, а remoteBranch
- имя удаленной ветки.
Я думаю, что вы можете откатить локально и нажать результат:
$ git reset HEAD^ --hard
$ git push REMOTE -f
Где 'REMOTE' - это удаленное имя.
Прежде всего введите эту команду.
git log -n 4
Эта команда покажет ваши последние 4 фиксации с их SHA. После этого введите следующую команду.
git rebase -i SHA_ID
Вместо SHA_ID введите SHA фиксации до коммита, который вы хотите удалить.
После этого откроется файл, в верхней части этого файла вы увидите SHA и сообщение коммита, которое вы хотите удалить. Удалите эту строку и сохраните и выйдите из файла.
Когда вы это сделали, вам нужно сделать толчок. Поэтому введите следующую команду.
git push -f origin master
После этого вы увидите, что ваша фиксация удалена.