我使用npm启动了一个项目,添加了一些依赖项,然后初始化了存储库usign git init.
我希望node_modulesgit忽略该目录,所以我将其添加到.gitignore文件中.
的.gitignore
node_modules/
Run Code Online (Sandbox Code Playgroud)
当然因为node_modules之前添加过git init,它仍然被认为是要跟踪的目录.
所以我删除它,使用以下命令(如同类似问题所述)
git rm -r --cached .
git add .
git commit -m ".gitignore should now work"
Run Code Online (Sandbox Code Playgroud)
然后使用重新安装npm依赖项 npm install
在此之后,我希望node_modules最终忽略该目录.相反,如果我输入git status我
Untracked files:
(use "git add <file>..." to include in what will be committed)
node_modules/
Run Code Online (Sandbox Code Playgroud)
为什么?
我已将以下几个条目添加到我的.gitignore
.env
.env.production
.env.staging
.env.uat
Run Code Online (Sandbox Code Playgroud)
现在我感到困惑的是,它似乎没有生效,无论是在 VS Code 上视觉上还是在我运行时git status,它都没有列出我期望删除/删除的所有文件?我肯定错过了一些明显的事情,但我无法发现它
VS Code 上的可视化如下:
我刚刚将.rubocop.yml文件添加到我的项目中,并将其添加到.gitignore文件中,但是当我这样做时,git status它显示为已修改。我从未将此文件添加到我的存储库。为什么.gitignore不忽略此文件?
应用程序/配置/.rubocop.yml
.rubocop.yml
其他文件也可以忽略,例如,我还尝试将tags文件添加到项目的根目录并将其添加到.gitignore,并且可以正常工作。
为什么.gitignore不忽略.rubocop.yml文件?
所以我的.gitignore只是在某个时候停止正常工作,并向我显示我想忽略的目录中的更改.
我已经阅读了有关此***解决方案的所有信息:
git rm -r --cached.git add.git commit -m"修复未跟踪文件"
它确实在我的机器上完美运行,我做了这三个步骤 - 提交它们 - 我可以在我的机器上对被忽略的目录进行更改.
问题是,当我将此提交提取到服务器时,它会删除所有被忽略的内容!不是它只是忽略它,它从服务器中删除文件和目录,使项目变得无用......
在整个互联网上,这个解决方案似乎是唯一一个破坏.gitignore的解决方案,但并不是因为它删除了不应删除的文件和目录.这很傻,很久以前就应该删除这样一个愚蠢的bug ...
编辑:它发生在不同的路径或文件上,当手动或通过软件添加到.gitignore时 - 将gitignore路径放在这里是没有意义的.< - 这是我提到的错误,而不是我运行一些命令......