撤消git rm -r缓存

时间:2017-12-28 08:11:13

标签: git

我是Git的新手,我认为我在当地删除了文件。我使用了这个命令git rm -r --cached .并删除了文件。但我还没有承诺。

如何撤消它?

2 个答案:

答案 0 :(得分:2)

git rm documentation有点明确:

  

<强> - 缓存

     

使用此选项仅从索引中取消暂存和删除路径。无论是否修改了工作树文件,都将保持不变。

因此,如果您丢失了文件,因为存储库中已存在提交(不是您的,而是其他提交)。

尝试运行 git reset 它应该清除所有未提交的操作,因此您应该在此之前找到存储库。

答案 1 :(得分:0)

索引包含路径和对象ID。 git rm --cached删除索引条目,撤消该行为意味着将其恢复原状。

如果自结帐后内容未更改,则git reset -- path/to/it是您的票证。如果你git add编辑了内容,它会在存储库中显示,但路径和内容之间的关联会丢失,您可以在.git/objects创建关于正确时间的对象git show他们找到正确的,然后git update-index --add --cacheinfo 10644,objectidhere,path/to/it手动恢复索引条目。

编辑:或者,如果您在git checkout或之后的任何git add内未对您的工作树中的内容进行编辑,那么只需再次git add