2013-05-22 2 views
2

Скажем, я хочу получить старую версию файла (filename.html) из нескольких коммитов назад. Правильно ли я думать, что мне нужно сделатьИзвлечение старой версии файла с помощью Git

git checkout sha -- filename.html 

(где ша является хэш коммита я хочу)

Но это помещает файл в моем индексе ступенчатого, а не мой рабочий каталог, правый ? Поэтому, если я сейчас запустил git commit, мое репо обновит, чтобы старый файл вернулся на место, но мой рабочий каталог все равно будет иметь более новый файл (которого я больше не хочу).

Я полагаю, что мог бы сделать git checkout -- filename.html, чтобы вернуть их обратно, но это лучший способ сделать это? Этот процесс кажется довольно затянутым, и он может быстро запутаться. Есть ли способ вернуть старую версию filename.html в мой рабочий каталог, не получив «застрял» в моем промежуточном индексе?

Спасибо.

ответ

1

Но это помещает файл в мой индекс промежуточной позиции, а не в мой рабочий каталог, не так ли?

Он поставил бы эту старую версию как в индексе и рабочего дерева.

, если я теперь работать мерзавец совершить мой репозиторий будет обновляться, чтобы старый файл на месте, но мой рабочий каталог будет еще более нового файл

Нет, она будет иметь более старую версию этот файл.

Я полагаю, что мог бы сделать git checkout - filename.html, чтобы вернуть их обратно, но это лучший способ сделать это?

Чтобы вернуться к последней версии, вы должны:

git reset HEAD -- filename.html # remove it from the index 
git checkout -- filename.html # restore latest 
1

Если вы просто хотите посмотреть этот файл и не планируют совершить его можно просто сказать

git show sha1:filename 
Смежные вопросы