Откат на старый коммит Git в публичном репо - PullRequest
725 голосов
/ 05 января 2010

Как я могу вернуться к конкретному коммиту в git?

Лучший ответ, который кто-то мог мне дать, это использовать git revert X раз, пока я не достигну желаемого коммита.

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

Есть ли более простой способ сделать это?

Я не могу использовать сброс, потому что этот репозиторий общедоступен.

Ответы [ 11 ]

0 голосов
/ 22 сентября 2018

Допустим, вы работаете над проектом и через день или около того. Вы заметили, что одна функция все еще дает вам ошибки. Но вы не знаете, какое изменение вы сделали, что привело к ошибке. Таким образом, вы должны ловить рыбу предыдущих рабочих коммитов. Чтобы вернуться к определенной фиксации:

git checkout 8a0fe5191b7dfc6a81833bfb61220d7204e6b0a9 .

Хорошо, так что коммит работает для вас. Нет больше ошибок. Вы определили проблему. Теперь вы можете вернуться к последнему коммиту:

git checkout 792d9294f652d753514dc2033a04d742decb82a5 .

И извлечение конкретного файла до того, как он вызвал ошибку (в моем случае я использую пример Gemfile.lock):

git checkout 8a0fe5191b7dfc6a81833bfb61220d7204e6b0a9 -- /projects/myproject/Gemfile.lock

И это один из способов обработки ошибок, созданных вами при фиксации, без осознания ошибок до позднего времени.

...