git rm--缓存不工作
我一直在尝试从git版本控制系统中删除一些文件,以便在提交时不会推送它们 git-rm--cached filename和git-rm--force--cached filename对多个文件都不起作用。基本上,删除的文件会被推送到github(不是在我更改有问题的文件时,而是在我编辑并提交项目中的其他文件时) 此外,对于一些文件,当文件确实存在于git rm命令的路径中时,我得到了致命的:pathspec不匹配任何文件错误 这里有些东西坏了,但我不知道如何安全地复位。请帮忙。试试这些命令:-git rm--缓存不工作,git,github,Git,Github,我一直在尝试从git版本控制系统中删除一些文件,以便在提交时不会推送它们 git-rm--cached filename和git-rm--force--cached filename对多个文件都不起作用。基本上,删除的文件会被推送到github(不是在我更改有问题的文件时,而是在我编辑并提交项目中的其他文件时) 此外,对于一些文件,当文件确实存在于git rm命令的路径中时,我得到了致命的:pathspec不匹配任何文件错误 这里有些东西坏了,但我不知道如何安全地复位。请帮忙。试试这些命令:-
git重置文件名
git重置头文件名
他们将从临时区域删除文件。将文件路径添加到项目根文件夹中的.gitignore。仅从索引中删除文件是不够的。您还必须创建一个提交,将该索引提交到您所在的分支,然后将其推送到远程存储库,您希望在其中显示此更改。如果您所做的只是
git rm…
,然后在没有提交的情况下执行git push,则不会将删除推送到github
执行git rm--cached
后,文件将从索引中删除,同时保留在工作树中
如果然后运行git diff
,则什么也看不到:这是因为它正在将工作树与分支提示进行比较。要查看分阶段删除,请使用git diff--cached
。这是分支尖端和索引之间的差值。这就是下次调用git commit时将提交的内容
只有在提交其他文件时才会推送删除,因为删除需要提交。当您进行其他更改并提交这些更改时,这些提交将拾取以前进行的删除
如果在同一提交中意外地将文件
x
的非主题文件删除与对文件y
的编辑结合在一起,则可以使用git reset HEAD^--x
创建一个阶段索引,该索引将反向删除x
。那就去做吧。或者,如果尚未发布错误的提交,请使用commit--amend
。修改后的提交现在只有y
编辑,并且x
再次成为跟踪文件。现在用rm--cached x
重新执行删除操作,并为此进行新的提交。您可能对Git的工作原理有点困惑。删除文件并推送时,这将导致从远程存储库中删除这些文件。当然,这些文件仍将保留在历史中,因为它们曾经存在过。