Как можно отменить последние 5 коммитов в git?
Схема работы такая:
В phpstorm сделал 5 коммитов на бедро, затем push, после чего на стороне сервера стянул эти изменения в проекте и все побилось. Как на стороне сервера отменить последние 5 pulls?
Как можно отменить последние 5 коммитов в git?
Схема работы такая:
В phpstorm сделал 5 коммитов на бедро, затем push, после чего на стороне сервера стянул эти изменения в проекте и все побилось. Как на стороне сервера отменить последние 5 pulls?
git reset --hard HEAD~5
Я надеюсь, что правильно понял, что нужно отменить 5 коммитов, а не "5 pulls". Посмотрите внимательно, возможно, что придётся откатить ещё merge commit.
Разделяйте систему контроля версий и деплой. Почитайте про capistrano.
Я так понимаю, вам на стороне сервера нужно не только файлы откатить, но и сам репозиторий. Поэтому приемлем такой вариант.
# выполняем на локальном репозитории
# стоит создать ветку-бэкап для неудачных коммитов
git branch backup
git reset --hard HEAD~5
# и теперь push --force
git push --force origin mybranch
#потом на сервере приводим файлы в соответствие с последним коммитом
git reset --hard
Более общий вопрос и ответ: Как вернуться (откатиться) к более раннему коммиту?
Вы можете отменить несколько commit'ов тем способом, который я указал.
– pirj Feb 28 '15 at 13:36git checkout COMMITID -- *(может, force нужно будет сделать, не знаю)git commit -am "sorry i'm idiot, pushed to production by accident :("– zb' Feb 28 '15 at 13:36git checkout COMMİTİD - *дает:fatal: invalid reference: COMMITID. Так и не понял - что можно в таком случае сделать – Jony Feb 28 '15 at 13:42-а--– zb' Feb 28 '15 at 13:49сколько именно pull'ов вы делали, не хранится
ну не совсем, немножко все таки хранится. смореть
– KoVadim Feb 28 '15 at 14:15git reflog.