2012-01-03 66 views
2

我剛剛開始使用Git。
我有:GIT倉庫與一些不同的文件

  • 的遠程服務器上的Web開發/www/my-web-app/
  • 我的本地機器上的存儲庫我有一個純倉庫/www/git-repo/,然後實際的Web應用程序/www/production-my-web-app/

我目前正在從本地計算機推送到裸存儲庫,然後將其拉到生產存儲庫中。

問題是我有一些配置文件是不同的生產。
我忽略了它們,但是我找不到一種方法來上傳它們(由於某種原因無法通過FTP來完成),我確信我只是缺少了一個明顯的git工具。

任何幫助表示讚賞,謝謝!

+0

git應該做什麼?所以你想要把這些配置文件放到一個git倉庫中 - 但它們不應該被版本化?或者你只是想讓它們與應用程序庫分開嗎?在後一種情況下,您可以將它們存儲在另一個git倉庫(開發和生產)中,並將它們作爲子模塊導入到您的開發和生產環境中。 – madflow 2012-01-03 14:37:37

+0

子模塊可能會矯枉過正,因爲幾個文件將始終保持不變,因此不需要進行版本升級。 – Dormouse 2012-01-03 14:43:15

+0

你爲什麼要爲你的prod應用程序「拉」?你爲什麼不使用'git archive'? – fge 2012-01-03 14:44:41

回答

2

您可能錯過並應該幫助您的情況的功能是「content filter driver」,特別是塗抹步驟。

content filter driver

的想法是版本一:

  • 您的配置文件
  • 腳本(污點)能夠採取的模板,並生成一個專用的模板(即非版本)配置文件
  • 一些非生產值(由本地機器調用時由腳本使用)

這樣,同樣的污跡腳本將在生產環境中使用時使用外部值,即祕密值不存儲在git倉庫中(不會存儲在git倉庫中)。
與您的本地機器相反,這些測試值可以在Git倉庫中安全地進行版本控制。

如果沒有「機密數據」的問題,你可以簡單的版本數「配置價值」的文件,每個環境中的一個,把它留給你的塗抹腳本:在

  • 檢測它是什麼樣的環境調用(自動在git checkout期間)
  • 使用正確的「config value」腳本來生成正確的配置文件。