2011-02-19 4 views
2

公開githubリポジトリにプッシュする前にプロジェクトをスクラブするツールはありますか?ソースコードをパブリックリポジトリにプッシュしながら、プライベート設定をどのように維持していますか?ベストプラクティスは何ですか?レールプロジェクトのgithubリポジトリにプライベート情報を誤ってプッシュするのを避けるためにどのツールを使用しますか?

+0

どのようなプライベート設定ですか?変更したので、リモートリポジトリにプッシュしたくない設定ファイルまたはファイルを参照していますか? –

答えて

2

私はgitでdatabase.ymlを保持しません。私はキャップ設定タスクにそれを書きます。電子メールアドレスなどについては、ファイルシステムのファイルからアプリケーションを初期化する際にそれらを読みます。再度、ソースコード管理ではなく、キャップ設定時に共有ディレクトリに書き込まれます。

がここにサンプルです:

namespace :deploy do 
    task :start do ; end 
    task :stop do ; end 

    task :setup do 
    run <<-CMD 
     mkdir -p -m 775 #{release_path} #{shared_path}/system #{shared_path}/media && 
     mkdir -p -m 777 #{shared_path}/log && 
     mkdir -p -m 777 #{shared_path}/pids && 
     mkdir -p #{deploy_to}/#{shared_dir}/config 
    CMD 

    end 

    require 'erb' 

    after deploy:setup do 
    db_config = ERB.new <<-EOF 
production: 
    adapter: mysql2 
    database: my_fine_database 
    host: 127.0.0.1 
    username: database_user 
    password: database_password 
EOF 

    email_config = ERB.new <<-EOF 
--- 
:user_name: [email protected] 
:password: verysecret 
:port: 25 
:address: mydomain.com 
:domain: mydomain.com 
:authentication: :login 
EOF 

    put db_config.result, "#{shared_path}/config/database.yml" 
    put email_config.result, "#{shared_path}/config/creds.yml" 
    end 

と私のenvironment.rbで、私が入れ:

credentials = File.join(Rails.root, 'config/creds.yml') 

ActionMailer::Base.smtp_settings = YAML.load(File.open(credentials)) if File.exists?(credentials) 

をあなたが保存される可能性があります機密他にどのような情報?

4

.gitignoreファイルはあなたの友人です。

1

ファイル全体をgitignoreしたくない場合があります。たぶん1行または2つの機密データを削除する方がいいかもしれません。私は特にこの目的のためにlucidoと書いています。

ルシード(loo-CHEE-doughと発音)は、機密データを簡単に削除し復元するための簡単なスクリプトです。 gitリポジトリ内では、lucidoは機密データのコミットを防ぎ、マージ後に自動的にリストアします。

関連する問題