Используя GitHub, как я могу восстановить свой локальный репозиторий до состояния, в котором он находился до моего последнего нажатия на источник? - PullRequest
0 голосов
/ 26 февраля 2019

Я сделал некоторую работу, совершил это и подтолкнул к началу.Теперь я понимаю, что хочу вернуться к тому моменту, когда я выполнил работу.

Я хотел бы восстановить свой локальный и мой исходный репозиторий для этой более ранней фиксации к источнику, и мне не нужно сохранять какие-либоиз изменений, которые я только что сделал либо локально, либо в источнике.

Поскольку я действительно хочу быть уверен, что не ошибусь.Может кто-нибудь дать мне совет, как я могу это сделать.Нужно ли мне сначала восстановить локальное repro, а затем еще раз нажать на источник?

Вот команда, которую, я думаю, мне нужно сделать:

git reset --hard HEAD~1

с последующим коммитом и push дляпроисхождение

Но это немного рискованно для меня, поэтому я хотел бы получить подтверждение, если я прав.

Спасибо

1 Ответ

0 голосов
/ 26 февраля 2019

Давайте предположим недавнюю историю, подобную этой, где вы захотите вернуться к коммиту C, поскольку коммиты D и E плохие.Я также предполагаю, что это происходит в основной ветке, но не стесняйтесь приспосабливаться.

A--B--C--D--E
            ^
          master <<< HEAD

Как найти ссылку на "хороший" коммит для возврата?

git log --oneline -15

должно быть достаточно, чтобы обнаружить его (сохранить его хэш и использовать его в следующей команде)


Теперь давайте перейдем к вашему локальному:

git checkout master
git reset --hard C

Затем отразитьваша новая ситуация на удаленном конце (github)

git push --force origin HEAD

И окончательная ситуация будет

A--B--C                   D--E (dangling, will be garbage collected later)
      ^
    master <<< HEAD
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...