Git Checkout -f для отмены всех локальных изменений устанавливает исходную фиксацию - PullRequest
2 голосов
/ 09 февраля 2012

Я запутался в своем приложении rails, поэтому использовал команду:

$ git checkout -f

чтобы вернуться к моей предыдущей фиксации и избавиться от моих ошибок. После исследования я вижу, что эта команда отменяет все локальные изменения! Теперь мое приложение показывает начальную фиксацию проекта в Firefox, и я не могу вернуть его к последней фиксации и показать всю работу, которую я проделал, чтобы я мог проверить ее в своем браузере. Я попробовал три тактики в этом посте Как отменить оформление заказа в git?

$ git reset --keep

$ git checkout master

$ git reset --hard HEAD

но я все еще вижу приложение таким, каким оно было при первом запуске проекта. Когда я набираю ...

git status

терминал показывает, что я нахожусь на главном филиале. Я все еще вижу все коммиты при запуске git reflog. Как я могу вернуть свое приложение, чтобы увидеть все локальные изменения и продолжить тестирование приложения в своем браузере?

1 Ответ

1 голос
/ 09 февраля 2012

Хорошо, что вы знаете, что такое рефлог и как его просматривать.Выберите последний коммит, который вы хотите сохранить из журнала, и:

git reset --hard abc123

где abc123 - это SHA1 коммита, который вы хотите.Это обновит master (вашу текущую ветвь) до коммита abc123 вместе со всей историей, подразумеваемой этим ..

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