我一直在尝试从git版本控制系统中删除一些文件,以便它们不会被提交。
git rm --cached filename 和 git rm --force --cached filename 不适用于多个文件。基本上删除的文件会被推送到github(不是在我更改有问题的文件时,而是在我编辑和提交项目中的其他文件时)。
此外,对于几个文件,当git rm命令的路径中存在文件时,致命:pathspec与任何文件错误都不匹配。
这里有些东西,但我不知道如何安全地重置一切。你能帮忙吗?
答案 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)
尝试以下命令: -
git reset filename
git reset HEAD filename
他们将从暂存区域中删除文件。