Допустим сделал push, но теперь нужно отменить этот последний пуш из-за ошибки.
Как это правильно сделать? Ветка master
P.S.
по просьбе выложил ответ от команды git reflog, названия коммитов вымышленные, т.к. на задачу большого значения не влияют
$ git reflog
4e212ca (HEAD -> master, origin/master, origin/HEAD) HEAD@{0}: commit: мой последний коммит
e12ea6d HEAD@{1}: reset: moving to HEAD^
132ae6f HEAD@{2}: commit: ещё один коммит
e43ea6d HEAD@{3}: commit: ещё один коммит
2234538 HEAD@{4}: pull: Fast-forward
89543c9 HEAD@{5}: commit: fix search
Ответ
Откатывать запушенные на сервер файлы во многих командах не
рекомендуется, так как их могли уже забрать с сервера.
Также настоятельно рекомендуется сделать резервную копию, скачав всё
содержимое папки в какое-либо другое место.
В принципе, если вы работали из командной строки и ещё не успели её закрыть – то можете просто посмотреть, какой коммит был последним:
git commit -m "asdf"
[master 6703d65] asdf
1 file changed, 3 insertions(+), 3 deletions(-)
git push
Counting objects: 4, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (4/4), 407 bytes | 407.00 KiB/s, done.
Total 4 (delta 2), reused 0 (delta 0)
To git.mydomain.tld:folder/repo.git
743acea..6703d65 master -> master
Последняя строчка говорит, что ДО push'а последний коммит был 743acea, а стал 6703d65 - вот и вернитесь к 743acea:
git reset --hard 743acea
git push --force
Также если вы закрыли консоль (либо у вас UI в котором не видны действия), но вы уверены, что ничего после push не делали - вам помогут команды:
git reset --hard HEAD~1
git push --force
Вообще же лучше всего прочитать рефлог (git reflog) и откатиться к нужному коммиту через HEAD@{1} (уточните цифру сколько действий нужно отменить именно в вашем случае):
git reset --hard HEAD@{1}
git push --force
Открываем reflog:
$ git reflog
6703d65 (HEAD -> master, origin/master, origin/HEAD) HEAD@{0}: commit: asdf
743acea HEAD@{1}: commit: asdf
1a4e976 HEAD@{2}: commit: something
...
Ваша задача — найти в этом логе тот пункт, к которому вы хотите вернуться:
$ git reset --hard HEAD@{1}
Комментариев нет:
Отправить комментарий