2014-01-14 2 views
22

Я сделал git reset HEAD~1, чтобы вернуться назад. Я делал это несколько раз.Git: Переместить голову на одну фиксацию вперед

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

Кто-нибудь знает, какую команду мне нужно использовать?

1-2-3-4-5-6

Первоначально я был в 6 и сбросить обратно 3. Теперь я хочу вернуться к 5. Я понимаю, что так как я не делал git reset --hard мои исходные файлы из commit 6 все еще доступны. Теоретически, я должен иметь возможность сброса и возврата обратно правильно?

+0

Если это последняя фиксация на ветке (например, 'master'), вы можете просто выполнить' git checkout master'. Если это не так, вы можете проверить конкретный SHA1 или проверить кончик ветки и работать в обратном направлении. Вероятно, есть и другие способы. –

+0

Если вы не сделали жесткий сброс, ваши изменения не будут отброшены. Однако сами фиксации были удалены из индекса. Изменения происходят только в файлах в вашем рабочем каталоге. Использование 'git reflog' позволит вам исправить это. –

ответ

33

использовать git reflog, чтобы увидеть SHA-1 последних операций, а затем сделать git reset --hard <sha1>.

Git хранит объекты (и их SHA-1 соответственно), даже они выходят «из области видимости» до следующего git gc вызова. Поэтому, если вы думаете, что вы потеряли что-то в истории проекта, используйте git reflog, чтобы узнать, есть ли там что-то там.

+1

Точнее, он сохраняет их до тех пор, пока не завершится запись в reflog * и * происходит 'git gc' (' gc' автоматически запускается при необходимости). Reflog - это простой способ найти их, так что «срок действия reflog» - это более безопасный способ подумать о том, как долго восстанавливаются вещи. По умолчанию срок действия составляет не менее 30 дней, а для некоторых записей - 90 дней (подробности выходят за рамки этого комментария :-)). – torek

+0

Это было очень информативно и позволило мне решить мою проблему. Спасибо user3159253 – SeekingAlpha

+0

Я получаю 'can not create directory at .... permission denied' – ahnbizcad

Смежные вопросы