2013-02-16 136 views
4

另一个开发者说我们应该把.htaccess文件放在git仓库中,但是因为活着的服务器使用密码,而我们的本地盒子没有,我说我们应该把它们放在.gitignore中。然而,他说如果你不得不在不同的实例中使用不同的.htaccess文件,那你就错了。我认为并不是所有的服务器实例都是相同的,有时(如果不是经常的话)他们需要自己的配置。他同意我们可以简单地在回放中创建一个“htaccess”文件,该文件现场复制到.htaccess,但仍然喜欢按照他的方式进行操作。对我而言,诸如服务器配置之类的东西应该保留在回购之外。另外,我不确定我需要更改我的开发操作系统,以便恰好与实时服务器匹配或运行VM软件。我在这里错过了什么吗?哪种方法最好,或者哪种方法更好?使用git repo处理.htaccess的最佳方式是什么?

回答

0

由于.htaccess似乎是特定的环境,而不是使应用程序运行的重要部分,我不会将其添加到回购。

也许最好的解决方案是在这些需要身份验证的服务器上不使用.htaccess,但只需在serverconfig中启用身份验证即可。

+0

我们确实需要.htaccess文件来定义PHP版本(我们在共享主机上)。你的解决方案是否也解决了这个问题其他解决方案? – dhinged 2013-02-18 06:06:31

+0

我不确定你的意思。你说你不需要定义PHP版本,那么必须解决什么问题? – 2013-02-18 06:07:45

3

我认为git主要是软件组件(如代码行)的跟踪器,而不是软件配置。

服务器密码是配置,因此被排除在更改控制之外。 .htaccess文件是必要的配置文件(正如我的理解),以便您的应用程序正确运行,因此需要通过git进行更改控制。

我看到它的方式有两种选择。它让我感觉更加优雅,可以将配置移出回购站,但如果必须将其保存在.htaccess文件中,则可以使用smudge/clean scripts in .gitattributes。在结帐时(即注入密码),Smudge/clean过滤器将定义的变化注入到跟踪的内容中,并且在分级时再次从跟踪的内容中清除密码(即,将密码替换为通用foobar)。请记住,因为这些污迹/清洁过滤器是在git配置中定义的,所以它们不会在被跟踪的文件执行的过程中传递,因此您需要跟踪自己以确保正确的过滤器位于应该在的位置是。

在任一情况下,你是否保持配置出回购的或跨越回购的实例做手动污迹/过滤器管理,你会从具有使用协议为GIT中受益,而(除其他事项外)说明如何处理配置和状态规则,哪些地方和/或服务器配置位于何处。

相关问题