【问题标题】:Gitignore - ignore a specific file from a specific folderGitignore - 忽略特定文件夹中的特定文件
【发布时间】:2018-05-18 09:27:35
【问题描述】:

我是新来的,我需要一些帮助。 我有一个具有这种结构的网站:

  • 文件夹 1
  • 文件夹2
  • 文件夹 3
  • 文件夹 4
  • 文件夹5
  • index.php
  • .gitignore

在文件夹 2 中有一个 config.php 文件。我怎样才能忽略该文件? 我尝试编辑 .gitignore 文件并添加 folder2/config.php 但 git 不会忽略它。

我也尝试过终端和源树,但没有成功?

您能告诉我如何忽略文件夹中的特定文件吗?

非常感谢各位!

【问题讨论】:

标签: git version-control bitbucket gitignore


【解决方案1】:

如果该文件已经是 git repo 的一部分,那么您需要将其从 git 中删除以防止进一步跟踪。您可以使用以下命令来做到这一点

git rm --cached folder2/config.php
git commit -m "Removed config file from repo"
git push

至于你在评论中的问题,创建并添加 config.php.dist 并添加到 git 中

cp folder2/config.php folder2/config.php.dist
git add folder2/config.php.dist
git commit - m 'adding config.dist to hold bsic config'
git push

请参阅我的其他答案以获取更多详细信息。 how to specify paths in .gitignore?

谢谢!

【讨论】:

  • 我不想删除它,我只想忽略它,因为将来可能会进行一些更改或添加全局变量或其他东西
  • 您可以创建一个新文件,例如folder2/config.php.dist 并将当前内容复制到这个新文件,是的,将这个新文件添加到 git。稍后当您需要或想要更改此设置时,您只需将 folder2/config.php.dist 中的内容复制/修改到原始配置。这就是框架处理配置文件的方式。 stackoverflow.com/questions/16843080/… 然后只从 git 中删除 config.php,就像我上面提到的那样。请注意--cached,这将从 git 而不是从本地删除。谢谢!
  • 我已经编辑了答案 w.r.t.在评论中回答您的问题谢谢!
【解决方案2】:

如果您已经签入了一个文件,那么如果您稍后添加规则,Git 将不会忽略该文件。您必须先取消跟踪文件,方法是在终端中运行以下命令:

git rm --cached 文件名

git commit -m "任何消息"

之后,您将不会从 git diffgit status 看到该文件的任何更改。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-02-05
    • 2019-10-18
    • 2020-06-19
    • 2022-11-16
    • 2019-05-07
    • 1970-01-01
    • 2016-12-25
    • 1970-01-01
    相关资源
    最近更新 更多