git - 使用 git repo 处理 .htaccess 的最佳方法是什么?

标签 git .htaccess

另一位开发人员说我们应该将 .htaccess 文件放在 git 存储库中,但是因为实时服务器使用密码而我们的本地盒子不使用密码,所以我说我们应该将它们放在 .gitignore 中。但是,他说,如果您必须跨实例使用不同的 .htaccess 文件,那您就错了。我认为并非所有服务器实例都将相同,有时(如果不经常)它们需要自己的配置。他同意我们可以简单地在 repo 中创建一个“htaccess”文件,并在现场复制到 .htaccess,但他仍然更喜欢按照他的方式进行。对我来说,服务器配置之类的东西应该放在 repo 之外。此外,我不确定我是否需要更改我的开发操作系统以完全匹配实时服务器或运行 VM 软件。我在这里错过了什么吗?哪种方法最好,或者更好的替代方法是什么?

最佳答案

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

服务器密码是配置项,因此不在更改控制范围内。 .htaccess 文件是正确运行应用程序所必需的配置工件(据我所知,在您的情况下),因此需要通过 git 进行更改控制。

在我看来,您有两种选择。将配置移出存储库让我印象深刻,但如果必须将其保留在 .htaccess 文件中,则可以使用 smudge/clean scripts in .gitattributes .涂抹/清理过滤器在 checkout 时将定义的更改注入(inject)跟踪内容(即注入(inject)密码),并在登台时再次从跟踪内容中清除密码(即用通用 foobar 替换密码)。

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

在任何一种情况下,无论您是将配置保留在存储库之外,还是在存储库实例之间进行手动涂抹/过滤管理,您都会受益于 git 的使用协议(protocol),这将 (除其他事项外)说明您如何处理配置和说明涂抹/清理脚本去哪里和/或服务器配置所在位置的规则。

关于git - 使用 git repo 处理 .htaccess 的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14906952/

相关文章:

php - 使用 .htaccess 创建 SEF url

html - 如何在错误 404 页面短暂延迟后自动重定向?

git - 将 Github repo 同步到 Dreamhost 站点

Git 推送在 fork 存储库上失败

Git rebase 和子分支

apache - 使用 .htaccess 将所有 .php 请求重定向到 .html

apache - .htaccess 重定向/重写问题

php - 如何在子域中制作 seo 友好的 url

git pull 和 git push 一气呵成

git - Git Diff 中的非 UTF8 字符(如 ESC[1;33m] )