【问题标题】:.gitignore not ignoring folder.gitignore 不忽略文件夹
【发布时间】:2016-12-25 04:32:57
【问题描述】:

我在 Laravel 有一个项目,并且我在公共目录中有论坛,我不想将它推送到存储库,所以我写在 .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 状态
这是我的树:
+...
+ 公开
++ 论坛
+++...
+...
问题出在哪里?

目录结构

Git 状态

【问题讨论】:

  • 你能告诉我们目录结构吗?
  • 我怀疑是路径问题。
  • 显示git status 的(相关部分)输出。 (如果您想知道,除了其他路径之外的所有路径都是相关的。)
  • 通用解决方案将*添加到public/forum的开头和结尾。
  • @KishorPawar - 我添加了屏幕

标签: git laravel smf-forum


【解决方案1】:

在 .gitignore 添加

public/forum

运行

git rm --cached -r public/forum

【讨论】:

    【解决方案2】:

    问题是这个文件夹已经在你的索引中(你在更早的时候提交了它)。对索引中文件的更改将始终处于“git 状态”。只有该文件夹中的新文件将被忽略。

    修复它。看我的回答 https://stackoverflow.com/a/38304114/2274140

    【讨论】:

    • 是的,这是真的。
    • 如果你想从 git 中删除文件,但实际上将文件保留在本地,你可以使用 git rm --cached -r path/to/folder,--cached 标志将从 git 的知识中删除它,但实际上保留文件。使用此方法的唯一好处是,它在将文件保存在本地的同时,会将其从任何其他拉取远程更改的系统中删除。
    【解决方案3】:

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

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

    很好,文件不再出现。希望您的情况类似。

    【讨论】:

      【解决方案4】:

      执行以下操作以触发gitignore

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

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

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

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

        git commit -m "Gitignore issue fixed"
        

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-11-16
        • 2021-09-29
        • 2021-09-24
        • 2018-01-12
        • 1970-01-01
        • 1970-01-01
        • 2014-07-06
        相关资源
        最近更新 更多