我目前有幾個配置文件,我們稱它們爲config.php和config2.php。我有開發這個倉庫的開發人員,這些配置文件對於託管本地開發環境是必要的,所以我將它們放在了git倉庫中。一旦被拉動,我希望它們保持不變,即使通過推和拉等。Git:如何拉一次配置文件,然後保持原狀
將配置文件添加到.gitignore後,我仍然必須確保配置文件設置爲生產值,當我推,然後在我拉動時將它們重置爲本地。有沒有辦法解決這個問題?
我目前有幾個配置文件,我們稱它們爲config.php和config2.php。我有開發這個倉庫的開發人員,這些配置文件對於託管本地開發環境是必要的,所以我將它們放在了git倉庫中。一旦被拉動,我希望它們保持不變,即使通過推和拉等。Git:如何拉一次配置文件,然後保持原狀
將配置文件添加到.gitignore後,我仍然必須確保配置文件設置爲生產值,當我推,然後在我拉動時將它們重置爲本地。有沒有辦法解決這個問題?
我看到兩個選項:
使用預先收到鉤下滑更改配置文件(也許除了當提交信息有一個特殊的關鍵字或線)。 在這種情況下,將配置文件添加到.gitignore
是不必要的(無論如何,它是無用的 - 一旦它們的文件被跟蹤,無論它們是否在.gitignore
之內都沒關係)。
如果您需要區分生產/測試版本,您只需確保測試版本未合併到生產分支(這也可以通過掛鉤實施)。
讓配置文件可以通過腳本自動生成。生成的文件被放置在.gitignore
並且從未被追蹤。 這樣,本地開發者一旦打電話createConfig.sh
並且可以適應他們當地的需求。 如果配置發生更改,則更新createConfig.sh
- 開發人員需要在本地修改更改(通過刪除和重新創建,或者手動重新執行更改)。
在您的生產環境中,您也可以簡單地擁有本地副本。 理想情況下,createConfig.sh
可生成生產就緒值,因此不需要進行許多手動更改。 (當然,總是可以添加一個--testing
開關。)
如果您將文件添加到您的git存儲庫,那麼git會跟蹤它們。這就是它的工作原理。
用於您的具體情況的解決方案可能是不包括在庫中的文件,而是包括像config.php.sample
和config2.php.sample
,然後指示你的開發人員,當第一次克隆庫,以便與本地副本適當的文件名。