git rm - 缓存不起作用

时间:2016-03-29 04:22:30

标签: git github

我一直在尝试从git版本控制系统中删除一些文件,以便它们不会被提交。

git rm --cached filename git rm --force --cached filename 不适用于多个文件。基本上删除的文件会被推送到github(不是在我更改有问题的文件时,而是在我编辑和提交项目中的其他文件时)。

此外,对于几个文件,当git rm命令的路径中存在文件时,致命:pathspec与任何文件错误都不匹配。

这里有些东西,但我不知道如何安全地重置一切。你能帮忙吗?

3 个答案:

答案 0 :(得分:1)

将.gitignore的文件路径添加到项目的根文件夹中。

答案 1 :(得分:1)

仅从索引中删除文件是不够的。您还必须从该索引创建一个提交到您所在的分支,然后将其推送到您希望此更改出现的远程存储库。如果您所做的只是git rm ...,那么删除不会被推送到github,然后是没有提交的git push

执行git rm --cached后,文件将从索引中删除,同时保留在工作树中。

如果然后运行git diff,则什么也看不见:这是因为它正在将工作树与分支提示进行比较。要查看暂存的删除,请使用git diff --cached。这是分支尖端和索引之间的差异。这是您下次调用git commit时将要提交的内容。

只有在提交其他文件时才会推送删除,因为删除需要提交。当您进行其他更改并提交这些更改时,这些提交将恢复以前分阶段的删除。

如果您在同一次提交中意外地将文件x的非主题文件删除与文件y的编辑相结合,则可以使用git reset HEAD^ -- x创建一个分阶段索引,撤消x的删除。然后提交。如果您尚未发布错误提交,请使用commit --amend。修改后的提交现在只有y次编辑,x再次成为跟踪文件。现在用rm --cached x重新删除并为此进行新的提交。

答案 2 :(得分:0)

尝试以下命令: -

  1. git reset filename

  2. git reset HEAD filename

  3. 他们将从暂存区域中删除文件。