撤销git-rm-r——缓存还是提交更改?

撤销git-rm-r——缓存还是提交更改?,git,gitignore,git-rm,Git,Gitignore,Git Rm,我试图让我的.gitingore工作(:) 我刚做完 git rm . -r --cached 现在,当我输入时,我有一个完整的已删除文件列表: git status -s 这正常吗? 我可以安全地提交所有更改吗 或者有没有办法撤销这个命令 PS:我试图理解此命令的作用,但我只发现了以下内容: 我不太清楚 PS 2:好的:)为了保存我的皮肤,我重新设置了: git reset HEAD * 删除的文件消失了,再见:)在git状态-s中不再可见。 但执行命令是否安全: git rm .

我试图让我的.gitingore工作(:)

我刚做完

git rm . -r --cached 
现在,当我输入时,我有一个完整的已删除文件列表:

git status -s 
这正常吗? 我可以安全地提交所有更改吗

或者有没有办法撤销这个命令

PS:我试图理解此命令的作用,但我只发现了以下内容: 我不太清楚

PS 2:好的:)为了保存我的皮肤,我重新设置了:

git reset HEAD *
删除的文件消失了,再见:)在git状态-s中不再可见。 但执行命令是否安全:

git rm . -r --cached and then add and commit it? 
“安全”?它所做的是清空索引并提交对这些文件的删除,而不从工作树(磁盘)中删除它们

这意味着所有这些文件都将被取消跟踪(私有)

通常,在发出这样的命令后,您不会提交。您重新设置(如您所做)。
这可能会迫使内容驱动程序(如a)或其他
.gittributes
指令再次应用于所有文件

您可以在GitHub帮助页面“”中看到该命令


同样,在这种情况下:没有提交,只有重置。

将“提交删除”更改为“阶段删除”是否正确?@unutbu“阶段”表示在索引中记录(阶段)。这就是git rm--cached所做的。如果在此之后提交,则会创建一个新的提交,记录在git repo中删除这些文件的情况。因此,如果在rm--cached命令之后添加并提交,我只需从存储库中删除所有文件即可??:O(不确定我是否正确):@Mr.TK否:如果您在git rm--cached之后直接提交,您将记录删除,这意味着任何其他克隆最新提交的人都不会看到这些文件。由于您执行了一个
git rm--cached-r
,这些文件仍然在您的磁盘(工作树)上,但未进行跟踪。如果您在
git rm
之后添加了
git
。。。这没有多大作用,但是恢复您刚才清空的索引。@Mr.TK Yes。我更喜欢使用
git reset
(带或不带
--hard
)在索引中进行恢复
git add
可以添加“太多”。
git rm --cached -r .
# Remove everything from the index.

git reset --hard
# Write both the index and working directory from git's database.