我不小心输入
git checkout ../../..
我实际是什么意思
cd ../../..
我意识到我所有未提交的更改都消失了。反正我能找回他们吗?
谢谢!
答案 0 :(得分:1)
如果您使用git checkout path
并且覆盖了未提交的更改,则这些更改通常会消失而无法恢复(尽管您的OS可能提供某些非Git方法,例如OS X上的Time Machine)。另请参见Get back the changes after accidental checkout?
您的主题行询问什么:
git checkout ../../..
表示。它告诉Git Git应该从当前提交中检出目录../../..
,即从您所在的任何子子目录中检出-例如a/b/c/
,如果您的布局包括顶层目录a
,b
中的子目录a
和c
中的子目录b
。在这种特殊情况下(从一个目录向下三个级别爬升三个级别),您将到达顶级目录,因此这将签出(提取)索引中的每个文件,从而覆盖工作树版本。 / p>
如果您下移了四个级别(例如,在a/b/c/d/
中),这将告诉Git从索引副本覆盖a/
中每个文件的工作树副本。