.gitignore无法忽略文件夹问题。

18

我在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状态中仍然显示该条目
这是我的树状结构:
+…
+公共的
++论坛
+++…
+…
问题出在哪里?

目录结构 enter image description here

Git状态 enter image description here


你能展示一下目录结构吗? - Kishor Pawar
我怀疑这不是路径问题。 - Kishor Pawar
展示 git status 的(相关部分)输出。(除了其他路径之外的所有内容都是相关的,以防你想知道。) - axiac
通用解决方案是在 public/forum 的开头和结尾添加 * - Kishor Pawar
@KishorPawar - 我添加了屏幕。 - Vertisan
5个回答

33

.gitignore 文件中添加

public/forum

运行

git rm --cached -r public/forum

26

问题在于此文件夹已经在你的索引中(你早先进行了提交)。对索引中文件的更改将始终显示在“git status”中。仅忽略该文件夹中的新文件。

要解决这个问题,请参见我的答案: https://dev59.com/rZjga4cB1Zd3GeqPPtA1#38304114


是的,这是真的。 - Kishor Pawar
4
如果你想从git中删除一个文件,但实际上想将该文件保留在本地,可以使用命令 git rm --cached -r path/to/folder。--cached选项将从git的记录中移除该文件,但实际上该文件会被保留在本地。需要注意的是,使用这种方法只会在本地保留文件,而其他拉取远程更改的系统将会删除该文件。 - Wader

0

在我的情况下

  • 当我将build/添加到.gitignore中时,git没有忽略Java项目的build/目录
  • 我尝试将其更改为build/*,但没有成功

最后,在.gitignore中只保留build,而不是斜杠/,这样做起作用了


PS:我的build目录从未被检入(git add),只是它一直存在,而且git一直在报告它是未跟踪的文件


0
如果其他人也遇到了这个问题,并且像我一样想要保留那些文件,我只需要:
  1. 将所有文件剪切/粘贴到我的存储库之外的不同文件夹中。
  2. 提交更改到git(即提交删除)
  3. 将文件粘贴回去
好了,文件不再出现了。希望你的情况也是类似的。

-3
执行以下操作以触发gitignore
  1. 在你想要修复的代码库中提交所有待处理的更改并将其推送。

  2. 从git索引中删除所有内容以刷新你的git代码库。这是安全的。使用以下命令:

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

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

    git commit -m "Gitignore issue fixed"
    

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接