我有一些文件曾经在 git 存储库中,但后来被忽略了。(主要是配置文件)但是,当我运行时git reset --hard,这些忽略文件上的更改也会重置,我确信 head 版本已经忽略了这些文件。
这是正常的吗?有没有办法git reset --hard忽略被忽略文件的更改?
您还可以使用 git clean 删除所有被忽略的文件:
当您的 .gitignore 中有文件时,它们不会被考虑进行更改,但您仍然可能想删除它们,例如因为它们会使您的文件系统变得混乱。
虽然常规 git clean 也会忽略它们,但传递 -x 开关会改变:
Run Code Online (Sandbox Code Playgroud)git clean -x如果您想先看看会发生什么,请确保通过 -n 开关进行空运行:
Run Code Online (Sandbox Code Playgroud)git clean -xn通过传递 -f (在某些情况下强制清理;我认为默认情况下也是必需的)或 -d (删除目录)开关,清理更加困难:
Run Code Online (Sandbox Code Playgroud)git clean -xdf小心:您可能会忽略本地配置文件,例如database.yml,这些文件也会被删除。使用风险自负。
当您已经提交了一个文件并随后忽略它时,您必须在单独的提交中再次删除该文件。
如果以后仍想使用该文件,则应事先备份它们。
cp <file> <file>.bak
Run Code Online (Sandbox Code Playgroud)
您可以像这样删除被忽略的文件:
git rm --cached <file>
git commit -m 'Remove ignored file'
mv <file>.bak <file>
Run Code Online (Sandbox Code Playgroud)
欲了解更多信息,请查看这个问题。