Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用git回购处理.htaccess的最佳方式是什么?_Git_.htaccess - Fatal编程技术网

用git回购处理.htaccess的最佳方式是什么?

用git回购处理.htaccess的最佳方式是什么?,git,.htaccess,Git,.htaccess,另一位开发人员说我们应该把.htaccess文件放在git repo中,但因为live server使用密码,而我们的本地框不使用密码,所以我说我们应该把它们放在.git repo中。然而,他说,如果你必须在不同的实例中使用不同的.htaccess文件,那你就错了。我认为并非所有服务器实例都是相同的,有时(如果不是经常的话)它们需要自己的配置。他同意我们可以简单地在repo中创建一个“htaccess”文件,并将其复制到live上的.htaccess,但他仍然更喜欢用自己的方式。对我来说,像服务

另一位开发人员说我们应该把.htaccess文件放在git repo中,但因为live server使用密码,而我们的本地框不使用密码,所以我说我们应该把它们放在.git repo中。然而,他说,如果你必须在不同的实例中使用不同的.htaccess文件,那你就错了。我认为并非所有服务器实例都是相同的,有时(如果不是经常的话)它们需要自己的配置。他同意我们可以简单地在repo中创建一个“htaccess”文件,并将其复制到live上的.htaccess,但他仍然更喜欢用自己的方式。对我来说,像服务器配置这样的东西应该被排除在repo之外。此外,我不确定我是否需要更改我的开发操作系统,以完全匹配实时服务器或运行虚拟机软件。我是不是遗漏了什么?哪种方法最好,或者哪种方法更好?

由于.htaccess似乎是特定于环境的,而不是使应用程序运行的必要部分,因此我不会将其添加到repo中


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

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

服务器密码是配置密码,因此将从更改控制中排除。htaccess文件是正确操作应用程序所必需的配置人工制品(我在您的案例中理解它),因此需要通过git进行更改控制

依我看,你有两个选择。在我看来,将配置移出repo更加优雅,但如果必须将其保存在.htaccess文件中,则可以使用。污迹/清除过滤器在签出时将定义的更改注入跟踪内容(即注入密码),并在登台时再次从跟踪内容中清除密码(即用通用foobar替换密码)

请记住,由于这些污迹/清除过滤器是在git配置中定义的,因此它们不会像其他跟踪文件那样被传递,因此您需要跟踪自己,确保正确的过滤器位于它们应该位于的位置


在这两种情况下,无论您是将配置排除在repo之外,还是跨repo实例进行手动涂抹/过滤管理,您都将受益于git使用协议,这将(除其他外)说明您如何处理配置以及smudge/clean脚本所在位置和/或服务器配置所在位置的状态规则。

我们确实需要.htaccess文件来定义PHP版本(我们使用共享主机)。你的解决方案也解决了这个问题吗?还有别的解决办法吗?我不知道你的意思。您说不需要定义PHP版本,那么需要修复什么呢?