2013-02-16 133 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中受益,而(除其他事項外)說明如何處理配置和狀態規則,哪些地方和/或服務器配置位於何處。

相關問題