我是Git的新手,我认为我在当地删除了文件。我使用了这个命令git rm -r --cached .
并删除了文件。但我还没有承诺。
如何撤消它?
答案 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
。