撤销 git rm . -r --cached 或提交更改?

5
我正在尝试让我的.gitignore工作(问题链接 :))。
我刚刚完成了。
git rm . -r --cached 

现在,当我输入以下命令时,会列出所有已删除的文件:
git status -s 

这正常吗?我可以放心地提交所有更改吗?
或者也许有一种方法可以撤消此命令?
附注:我试图了解这个命令的作用,但我只找到了这个网页链接:http://brianloomis.wordpress.com/2009/08/10/git-rm-r-cached/,但对我来说并不是很清晰。
附注2:好的,为了保全自己,我进行了重置。
git reset HEAD *

被删除的文件已经消失了:)它们在git status -s中不再可见。但是执行以下命令是否安全:

git rm . -r --cached and then add and commit it? 
1个回答

5
"safe"的作用是清空索引并提交这些文件的删除,但不会从工作树(您的磁盘)中删除它们。
这意味着所有这些文件都变成了未跟踪的(私有的)。
通常情况下,在执行此命令后,您不会进行提交,而是会重置(就像您所做的那样)。
这可以强制应用内容驱动程序(如smudge脚本)或其他.gitattributes指令来重新应用于所有文件。
您可以在GitHub帮助页面“处理行尾”中看到该命令的使用。
git rm --cached -r .
# Remove everything from the index.

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

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


@unutbu "stage" 表示在索引(stage)中记录。这就是 git rm --cached 已经做的事情。如果您在此之后进行提交,则会创建一个新的提交,其中记录了在 git 存储库中删除这些文件的操作。 - VonC
所以,如果我在执行 rm --cached 命令后进行 add 和 commit 操作,那么我会从代码库中删除所有文件吗?? :O (不确定我是否理解正确) :) - Mr.TK
1
@Mr.TK 是的。我更喜欢使用 git reset(带或不带 --hard)来恢复索引中的内容。git add 可能会添加“太多”的内容。 - VonC
@Mr.TK 您好,欢迎。这里已经快8点了,新的一天才刚刚开始。 - VonC
所以...我们处于同一时区。 :) 上午11:20 :) - Mr.TK
显示剩余4条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接