如何在PhpStorm和Git中忽略文件?

12

我无法忽略已经在版本控制下的文件。

“忽略...”选项被禁用:

enter image description here

第一个问题:为什么会被禁用?

第二个问题:如何将文件添加到git ignore中?

非常感谢!

编辑

PhpStorm说:“只有选择了未版本化文件节点下的文件时,才可以使用此选项。如果您想让所选文件保持未版本化状态,请使用此选项来忽略它。”

(来源:https://www.jetbrains.com/help/phpstorm/2016.3/local-changes-tab.html

但是有时您可能需要对初始提交的文件进行更改,然后将其添加到git ignore中以允许本地更改(用于本地开发),而不再将此文件提交/推送到任何存储库中。

编辑2

我现在处理这个的另一种方法是将带有凭据的更改添加到未提交的更改列表中:

enter image description here


你使用的是哪个版本的PhpStorm? - Marina Liu
PhpStorm 2016.3.2 - Flo Bayer
3个回答

18

忽略已经在版本控制中的文件是没有意义的。因此,您需要先使用以下命令将其删除:

git rm --cached filename

那些文件在本地存在但从你的代码仓库中删除。这时你可以忽略这些文件。


1
这个想法是:有一个config.php文件。 该文件最初被提交和推送。 开发人员将repo克隆到他的本地虚拟环境中,并调整了路径,专门针对他的本地环境。这些更改不应提交和推送到repo /生产服务器。 因此,在我看来,有一个合理的解决方案: 将config.php添加到git ignore(未版本化,不在repo中);开发人员使用带有本地VM调整的config.php共享,而服务器上有一个特殊的config.php具有其他设置。正确吗?谢谢! - Flo Bayer
1
在大多数情况下,您应该忽略config.php文件,并创建一个类似于config.template.php的文件,然后将该文件检入。每个环境或开发人员都可以复制该文件并使用它。将密码和设置检入您的存储库并不是一个好主意。 - René Höhle

8

对于第一个问题,如您在链接中找到的。

对于第二个问题,如果要忽略已由git版本控制的文件,您应该使用git命令来执行:

  1. 在本地repo中,在.gitignore文件中添加文件名。如果您没有.gitignore,可以使用touch .gitignore创建一个。
  2. git rm --cached filename

2
阅读了您的评论后,我认为您真正需要的是锁定文件功能,这个功能(据我所知)仅在GitLab上存在。但是...这需要中央服务器,因此实际上与Git的主要思想相违背。
在大多数情况下 - 正如Stony所说 - 您应该创建模板文件,例如config.template.phpconfig.dev.php,将config.php添加到.gitignore中,并让每个开发人员重命名/重新创建config.php。
另一种方式是创建部署脚本并提供转换说明,该脚本将自动调整配置文件内的路径,也许还会自动部署整个应用程序,并在每次部署时运行它。
或者简单地在每次提交更改时排除配置文件。

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