2016-12-04 21 views
-1

我有一個使用Twitter身份驗證的項目。這意味着,該項目擁有應該保持私有的API密鑰。我想讓它開源,這就是爲什麼我必須在git push之前修剪所有API密鑰。 現在2天了,我一直在手動做。這是一個非常煩人的過程。在推送到git之前修改API密鑰

現在,我正在考慮將文件sftp到活動服務器也是令人厭煩的,我應該在活動服務器上設置一個webhook,並讓它將所有更改全部取消。

但是,git版本將修剪所有API密鑰。所以活網站將無法正常工作。我需要一些想法,我該如何解決這個問題。

-> remove auth keys before pushing to git 
-> put keys back in when pulling on live server 
+2

不要將它們存儲在你的代碼中,使用環境變量 –

+0

@IsmailBadawi它是一個php項目。我不知道如何使用env。 PHP中的變數 – haider

+0

我敢打賭,如果@haider使用FTP,他們無法訪問PHP CGI進程,並且無法設置環境變量。 –

回答

0

使用單獨的文件來存儲私人信息。不要檢查它。

最簡單的事情就是擁有一個包含默認配置的配置文件。這是簽入和留下。然後用戶提供自己的定製配置,覆蓋默認值。這個用戶寫入的文件沒有簽入。把你的驗證信息放在那裏。

另一個好處是現在你可以改變默認的配置,而不會消除本地定製。

經驗法則是,你永遠不想有被跟蹤的文件,但有變化無法檢入。它使開發變得更加困難,只是要求某人錯誤地致git add .git commit -a。相反,將需要更改的位放入單獨的未跟蹤文件中。


可是,git的版本將擁有所有的API密鑰修剪。所以活網站將無法正常工作。

Git不是一個發佈工具,不要嘗試像使用它一樣。除了從Git倉庫中獲取文件外,還需要其他一些將文件放到服務器上的方法。像rsync這樣簡單的事情就可以做到。

+0

我的意思是sftp,對不起 – haider

+0

@haider哦,謝天謝地。 – Schwern

+0

您是否可以在使用git作爲發佈工具時發出一些光芒?那有什麼缺點?我從來沒有想過他們。 – haider