.gitignore 不忽略文件夹

.gitignore not ignoring folder

我在 Laravel 中有一个项目,我在 public 目录中有一个论坛,我不想将它推送到存储库,所以我在 .gitignore:

中写了
### Laravel ###
vendor/
node_modules/

# Laravel 5 & Lumen specific
bootstrap/cache/
.env.*.php
.env.php
.env

# SMF
public/forum/

# Rocketeer PHP task runner and deployment package. https://github.com/rocketeers/rocketeer
.rocketeer/

但是,条目仍然出现在 Git status
这是我的树:
+...
+ public
++论坛
+++...
+...
问题出在哪里?

目录结构

Git状态

问题是这个文件夹已经在您的索引中(您之前提交过)。索引中文件的更改将始终在 "git status" 中。只有该文件夹中的新文件将被忽略。

修复它。看我的回答

在.gitignore中添加

public/forum

运行

git rm --cached -r public/forum

执行以下操作以触发 gitignore

  1. 提交您要修复并推送的存储库中的所有待定更改。

  2. 从 git 索引中删除所有内容以刷新您的 git 存储库。这是安全的。使用此命令:

    git rm -r --cached .
    
  3. 将所有内容添加回存储库,这可以使用以下命令完成:

    git add .
    
  4. 使用以下命令提交这些更改:

    git commit -m "Gitignore issue fixed"
    

如果其他人遇到这个问题并且像我一样想要将这些文件保留在那里,我只需:

  1. 将所有文件剪切/粘贴到我的存储库之外的不同文件夹中。
  2. 提交对 git 的更改(也就是提交删除)
  3. 将文件粘贴回

一切顺利,文件不再出现。希望你的情况会相似。