问题描述
我使用 PHPStorm 作为我的 IDE,它在名为 .gitignore
的目录中设置 .idea
文件。有些文件夹和文件我想忽略,但无论如何我都无法转到上一个文件夹。
让我们有一个名为 example.txt
的文件。文件夹树看起来像这样:
- /Project
- /.idea
- .gitignore
- workspace.xml
- /src
- example.txt
如何忽略 example.txt
文件?我试过../src/example.txt
、src/example.txt
、/../src/example.txt
解决方法
.gitignore
适用于目录及其子目录。
它不适用于同级或父目录。
要忽略 src/example.txt
,您可以:
-
在
.gitignore
目录下创建一个src/
文件,例如包含example.txt
-
在父目录中创建一个
.gitignore
文件,包含例如src/example.txt
如果您已将 src/example.txt
添加到存储库,即使您将 src/example.txt
添加到 .gitignore
,git 也不会忽略它。您需要像这样从存储库中删除它:
git rm --cached src/example.txt
此命令仅从 git 存储库中删除文件。原始文件将保留在 src/example.txt
此外,要忽略 src/example.txt
,您需要在顶级目录(在 Project 上)创建一个 .gitignore
文件,并将 src/example.txt
放入其中。
如果您已经将文件推送到 git,即使您将 example.txt
添加到 .gitignore
,缓存日志仍然存在。
所以,那些缓存的日志也应该被删除。运行以下代码。
$ git rm --cached `src/example.txt`
此外,要忽略 src
文件夹下的所有文件,然后将 src/
添加到 .gitignore
。然后它会忽略文件夹 src/
下的所有文件以及 src
文件夹本身。
如果您想删除所有跟踪的文件,请运行以下代码。
$ git rm -r --cached .
使用以上命令,您可以清除所有缓存跟踪。