假設我有一個位於公共開放源代碼回購和私人開發回購的項目。發展回購的一些文件將包括像數據庫密碼的東西,並且我不想公開。在兩個遙控器之間共享安全文件的最佳方式是什麼?我在想某種只適用於公共回購的.gitignore文件,這可能嗎?如果沒有,還有其他建議嗎?選擇性的git忽略遠程?
回答
請勿將密碼放在源代碼管理期間。他們到處只是.gitignore
;通過其他方式分發私人密碼文件。
(沒有,沒有隻在某些倉庫忽略文件的方式。)
這沒有幫助。我們需要在repo中部署配置,以便我們可以根據需要更改它們,並且每個人都會知道,而且我們的生產環境也是基於git的,因此需要部署的所有文件都需要在私人倉庫中提供。沒有理由這樣的私人數據不應該在私人信息源控制。 – 2011-06-14 04:31:21
@Stephen:問題在於,由於Git的運作方式,如果您甚至更改了單個文件,您將擁有完全不同的提交散列集合,從而形成完全不同的歷史記錄。 Git不會在歷史級別上區分公共存儲庫和私人存儲庫。 – Amber 2011-06-14 04:33:57
@Stephen:你可以做的是保持一個單獨的分支,它有一個提交添加到你的私人文件中,並且永遠不會將該分支發佈到公共存儲庫。當更新開源部分時,您可以將其合併到'私人'分支中,私有文件將被保留。 – Amber 2011-06-14 04:34:51
可能把更多的敏感文件在不同的回購,在回購原其子模塊,讓您只私人開發商訪問私人回購。
如果確實存在文件,爲了安全起見,這些文件不應泄露給公衆,請勿將它們放入存儲庫或使用密碼加密文件!
最好的是,當你把非共享文件在一個單獨的存儲庫可以住私人開發版本中:
BASE_DIR/.git
BASE_DIR/private/.git
這裏BASE_DIR包含了所有公共文件。 BASE_DIR/private包含私有文件。
當你剛剛發佈的數據,而不是存儲庫(及其所有歷史記錄),你可以簡單地
git --work-tree=PATH_TO_THE_PUBLIC checkout HEAD -- .
在新版本到來。
- 1. git忽略遠程文件
- 2. 基於遠程的git忽略文件?
- 3. git知道,但(遠程)svn忽略
- 4. git的清潔選擇忽略模式
- 5. 忽略屬性選擇中的ID
- 6. 選擇性忽略NUnit測試
- 7. 忽略terraform遠程狀態
- 8. Git忽略並且不跟蹤合併的遠程文件
- 9. Git diff忽略
- 10. Git忽略gitconfig?
- 11. Xcode .git忽略
- 12. Powershell選擇忽略列
- 13. EF忽略了選擇
- 14. 在SQL選擇忽略列
- 15. IE7忽略:非選擇器
- 16. Paper.js忽略圖像選擇
- 17. git可以永久忽略遠程分支嗎?
- 18. 如何在GIT推送期間忽略遠程更改?
- 19. Git忽略目錄而不對遠程進行更改
- 20. Automapper忽略屬性忽略
- 21. git push忽略cocoapods
- 22. Git忽略只推
- 23. 忽略Git提交
- 24. 忽略git合併
- 25. Unity Git - 忽略庫
- 26. 忽略在Git中
- 27. 忽略使用Git
- 28. 忽略git目錄
- 29. Git有選擇地忽略儘管gitignore文件
- 30. git櫻桃選擇和忽略EOL變化合並
這通常使用過濾器驅動程序來處理,如http://stackoverflow.com/questions/3318043/mark-a-file-in-the-git-repo-as-temporarily_ignored/3318202#3318202 – VonC 2011-06-14 04:53:06