Временно переключить рабочую копию на конкретный коммит в git'е
как переключиться на конкретный git commit без потери всех коммитов, сделанных после него?
Я хочу, чтобы локальные файлы были изменены, но база данных коммитов останется нетронутой, только указатель текущей позиции установлен в текущий выбранный коммит.
Я хочу изменить состояние файлов на конкретную фиксацию, запустить проект и по завершении восстановить файлы до последней фиксации.
Как это сделать, не застегивая весь проект папка?
3 ответов
Если вы находитесь в определенной отрасли mybranch
, просто вперед и git checkout commit_hash
. Затем вы можете вернуться в свою ветку git checkout mybranch
. У меня была такая же игра, разделяющая ошибку сегодня:) кроме того, вы должны знать о git bisect.
во-первых, использовать git log
чтобы увидеть журнал, выберите нужную фиксацию, запишите хэш sha1, который используется для идентификации фиксации. Далее бегите git checkout hash
. После того, как вы закончите,git checkout original_branch
. Это имеет то преимущество, что не перемещает головку, она просто переключает рабочую копию на определенную фиксацию.
В дополнение к другим ответам здесь, показывая вам, как git checkout <hash-that-you-want>
стоит знать, что вы можете вернуться туда, где вы использовали git checkout @{-1}
. Это часто удобнее, чем git checkout original-branch
.