如何返回到 .gitignore 中的上一个目录

问题描述

我使用 PHPStorm 作为我的 IDE,它在名为 .gitignore 的目录中设置 .idea 文件。有些文件夹和文件我想忽略,但无论如何我都无法转到上一个文件夹。

让我们有一个名为 example.txt文件文件夹树看起来像这样:

- /Project
  - /.idea
    - .gitignore
    - workspace.xml
  - /src
    - example.txt

如何忽略 example.txt 文件?我试过../src/example.txtsrc/example.txt/../src/example.txt

解决方法

.gitignore 适用于目录及其子目录。 它不适用于同级或父目录。

要忽略 src/example.txt,您可以:

  1. .gitignore 目录下创建一个 src/ 文件,例如包含

    example.txt
    
  2. 在父目录中创建一个.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 .

使用以上命令,您可以清除所有缓存跟踪。