我有一個config/my_private_data.yml
文件的Rails應用程序。我想推動整個應用程序都到我的測試服務器和github。Git:只推送私人配置文件來測試版本庫而不是github?
但是,當我推送到測試服務器時,我想包含私有文件。當我推送到github時,我不想包含私人文件。最簡單的方法是什麼?
我有一個config/my_private_data.yml
文件的Rails應用程序。我想推動整個應用程序都到我的測試服務器和github。Git:只推送私人配置文件來測試版本庫而不是github?
但是,當我推送到測試服務器時,我想包含私有文件。當我推送到github時,我不想包含私人文件。最簡單的方法是什麼?
您可以設置兩個分支。 master
和secret
。然後,您可以在secret
分支中添加並提交config/my_private_data.yml
,然後您可以將其推入測試服務器的主分支。
touch config/my_private_data.yml
git checkout -b secret
git add config/my_private_data.yml
git commit -m 'Commited secret file'
git push testserver_repo_url secret
git checkout master
git push repo_on_github master
然後如果您在主服務器上有新提交,請執行git checkout secret; git rebase master
。
不要犯secret
,如果你這樣做,做一個櫻桃選擇提交。
當然,並不是所有的方法都很好。從我現在的想法來看,你可能無意中將祕密分支推向github。另外,如果您需要my_private_data.yml
文件(儘管您可以從祕密分支簽出該文件),那麼您無法在master
中工作。
私密性如何?如果文件變爲公共文件時它是一個大規模的災難,那麼不要包含它(使用具有默認值的'config/private_data.yml.template')。你有機會,或者有人犯了錯誤,你有github上的數據或其他你現在從未想過的地方。 – Unapiedra
不是特別私密,但不是我想分享的東西。我不會將我的核碼發佈到github上,甚至不會將它們放到我的應用程序中。 – Clay
這裏應該是一個解決方案:http://stackoverflow.com/questions/1836742/using-git-how-do-i-ignore-a-file-in-one-branch-but-have-it-committed-在另一 –