2017-05-29 71 views
1

Suppoe我正在git中工作,我製作了一個名爲sensitive的分支,並在sensitive中提交了敏感數據(例如密碼,密鑰)。我從來沒有在master中提交敏感數據,並且我從不合並sensitivemaster,但我確實將master拖入sensitive。當我git push origin master,是否有任何危險,我會推動敏感數據斑點到服務器?將敏感數據保存在未推送的分支中是否安全?

+0

如果你永遠不會提交敏感數據,也不會命名分支或標記或任何敏感內容,那麼'git push'不會推送敏感數據。但是,git的開發人員/用戶有責任確保您永遠不會提交敏感數據。在這裏看到最好的答案是更好的方式,有更多的保障,是人們決定處理這種情況的「典型」方式。 –

回答

4

你的問題是關於Git,但事實上,你的問題是一個不同的問題。它(至少)有一個解決方案。

  1. 把敏感數據在一個名爲文件,比方說,config並添加它的名稱(路徑).gitignore
  2. 創建此文件的副本,我們將其命名爲config.dist,用啞數據替換敏感數據並將其添加到存儲庫(它絕不能包含敏感數據)。在文件標題中說明它必須複製爲config並進行自定義。
  3. 讓代碼從config加載它的配置。對於獎勵積分,如果config不可用,則可以讓它加載config.dist
  4. 提交併推送。

文件config.dist作爲從未存儲在回購中的實際config文件的模板。每個開發人員可以根據需要自定義config文件。讓config/config.dist包含所有從一個系統切換到另一個或項目的生命週期內可能會改變(文件路徑,數據庫連接參數,密碼等)


要回答你的問題的信息,解決方案上面介紹的是100%安全(讓人爲錯誤分開)。由於config文件永遠不會到達回購站,因此無論Git如何在內部工作,敏感數據都不會被推送到遠程回購站。

+1

可以實施git掛鉤(例如預先提交)以進一步避免人爲錯誤。 – JooMing

0

不,沒有危險。如果您不考慮將敏感數據共享給所有可訪問您存儲庫的人員。

相關問題