撤消git rm -r --cached

时间:2014-08-14 15:20:41

标签: git

我的.gitignore文件无效,所以我按照question进行了操作。

现在我有一堆我需要提交的文件,以便继续。 我犯了一个错误并犯了错误,因为我无法找到摆脱这些的方法。

有什么方法可以恢复所有这些行动吗?我不能reset因为我现在得到错误: error: The following untracked working tree files would be overwritten by checkout

愚蠢的愚蠢错误,我可以为此找到解决方案。

5 个答案:

答案 0 :(得分:45)

如果您只运行git rm -r --cached,请尝试在您的回购根目录中执行git reset HEAD .

如果您在执行git commit -m "msg"后执行了git rm -r --cached,即您已提交更改,请执行git reset HEAD~1undo your last commit

答案 1 :(得分:1)

如果从缓存中删除了文件,则运行git checkout HEAD path/to/file将不起作用。

对我有用的是通过运行以下命令移至新分支:

git checkout -b newBranch

答案 2 :(得分:1)

如果只想还原特定文件,则可以执行 git restore --staged <file>

答案 3 :(得分:0)

Git基于文件缓存工作,所以如果你从缓存中删除了所有东西,你可以通过执行来反转整个过程。这将添加回被跟踪的文件并告诉自上次提交以来哪些文件已被修改。

> git add . 

答案 4 :(得分:0)

如果您希望git使git“重新跟踪”您的文件,请通过 .gitignore

将其删除
git rm --cached

您可以使用以下方法做到这一点:

git add -f <files>

之后,如果要从暂存区中删除文件,则可以使用:

git restore --staged <files>