“ git checkout ../../ ..”:这是什么意思

时间:2018-06-25 19:16:48

标签: git

我不小心输入

git checkout ../../..

我实际是什么意思

cd ../../..

我意识到我所有未提交的更改都消失了。反正我能找回他们吗?

谢谢!

1 个答案:

答案 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/,如果您的布局包括顶层目录ab中的子目录ac中的子目录b。在这种特殊情况下(从一个目录向下三个级别爬升三个级别),您将到达顶级目录,因此这将签出(提取)索引中的每个文件,从而覆盖工作树版本。 / p>

如果您下移了四个级别(例如,在a/b/c/d/中),这将告诉Git从索引副本覆盖a/中每个文件的工作树副本。