Если вы использовали git checkout <em>path</em>
и оно перезаписало незафиксированные изменения, эти изменения, как правило, пропадают без возможности восстановления (хотя ваша ОС может предлагать какой-либо не-Git метод, например, Time Machine на OS X).См. Также Вернуть изменения после случайной проверки?
В строке вашего вопроса спрашивается, что:
git checkout ../../..
означает.Он сообщает Git, что Git должен извлечь каталог ../../..
из текущего коммита, т. Е. Из любого подподкаталога, в котором вы находитесь, например, a/b/c/
, если ваш макет содержит каталог верхнего уровня a
,подкаталог b
в a
и подкаталог c
в b
.В этом конкретном случае - поднявшись на три уровня вверх, от каталога на три уровня вниз - вы попадете в каталог верхнего уровня, так что он будет проверять (извлекать) каждый файл в индексе, перезаписывая версии рабочего дерева.
Если вы были на четыре уровня ниже - например, в a/b/c/d/
- это скажет Git перезаписать копию рабочего дерева каждого файла в a/
из индексной копии.