Git - как мне go вернуться к первоначальной фиксации? - PullRequest
3 голосов
/ 07 августа 2020

У меня есть репо git только с одной фиксацией. В моей локальной основной ветке я случайно сделал git commit --amend, поэтому теперь я получаю сообщение:

On branch master 

Your branch and 'origin/master' have diverged,
and have 1 and 1 different commits each, respectively. 

Как я могу отменить измененную фиксацию и go вернуться к исходной фиксации? Я хочу, чтобы мой локальный мастер и origin / master были обновлены и ничего не фиксировать

Ответы [ 3 ]

4 голосов
/ 07 августа 2020

Вы можете использовать reflog , чтобы сбросить master до фиксации, на которую он ссылался перед текущим:

git reset --hard master@{1}

Reflog - это реальная жизнь спасатель в подобных ситуациях. Об этом стоит прочитать в Git Книге :

В какой-то момент вашего Git путешествия вы можете случайно потерять фиксацию. Как правило, это происходит из-за того, что вы принудительно удаляете ветвь, над которой работала, и оказывается, что вам все-таки нужна ветка; или вы полностью сбросили ветку, отказавшись от тех коммитов, от которых вы чего-то хотели. Если это произойдет, как вы можете вернуть свои коммиты? [...]

Часто самый быстрый способ - использовать инструмент под названием git reflog.

0 голосов
/ 07 августа 2020

Поскольку вы находитесь в 'origin / master' и хотите сбросить использование ниже git команда сброса

git reset --hard origin/master

Пояснение: От git документация

git-reset - Сбросить текущий HEAD в указанное состояние

--hard - это опция режима (необязательно). hard Сбрасывает индекс и рабочее дерево. Любые изменения в отслеживаемых файлах в рабочем дереве с тех пор отменяются.

0 голосов
/ 07 августа 2020

Вы можете сбросить текущую master ветку, чтобы она была такой же, как и исходная, с помощью:

git reset --hard origin/master

Обратите внимание, что это удалит любые изменения в вашей текущей master ветке, которых нет в origin/master.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...