1

別のリモート リポジトリとして設定した github で共有を開始したいプロジェクトがあります。しかし、明らかに github で共有したくない機密設定情報 (Amazon s3 アカウントの詳細) があります。

リモート github リポジトリに設定ファイルを無視させる方法はありますが、ローカルおよび他のリモート リポジトリはそれで動作しますか?

編集 - この質問を再度開いて、これを実行できる他の分散ソース管理システム (mercurial? bazaar? など) があるかどうかを確認します。

4

3 に答える 3

1

設定ファイルを作成することはできignoreますが、バージョン管理されることはありません。

私がやっていることは、2つの構成ファイルを持つことです。1つは本番用で、もう1つはすべての設定を含む開発用です。機密性の高い資格情報は、メイン構成によって「ソース」された別のファイルにあり、バージョン管理されていません。多くの場合、これらは2行(ユーザー名、パスワード)です。

ただし、一般的に、ファイルを追跡する方法はありませんが、プッシュすることはできません。

于 2011-12-12T16:34:48.043 に答える
1

Mercurial は Git と同じように機能し、そのための適切な推奨事項を既に得ています。ただし、リポジトリ内のファイルからパスワードを削除するエンコード フィルタをセットアップできます。

アイデアは、ファイルをバージョン管理することです

username =
password =

ただし、ローカルに値が入力されたファイルがあります。Mercurial は実行時に値を無視しhg statushg diffエンコード後に結果を表示するため、エンコード フィルターは機密情報を取り除きます。

何かのようなもの

[encode]
settings.cfg = sed "s/(username|password) = .*/\1 =/"

動作するはずです。(トラムに乗っているので、今はテストできません。)

ファイルのバージョン管理を行わないことは、この問題に対処するための簡単で、通常の、推奨される方法です。

于 2011-12-13T07:17:10.357 に答える
0

通常、これを行うには、2つの構成ファイル(サンプル構成が必要な場合は+1)を使用します。

構成

username=root
password=r00t

config.local

username=tkone
password=yoursecretpassword

config.local.sample(オプションですが、推奨されます)

username=replace with your local username and rename file to config.local
password=replace with your local password and rename file to config.local

.gitignore

config.local

にファイル(保護したいファイル).gitignoreを入れてチェックインする必要があります(そして、使用する場合は)。config.localconfigconfig.local.sample

誰かがあなたのプロジェクトのクローンを作成すると、次のファイルが表示されます。

config
config.local.sample
.gitignore
all your other project files

重要!!!プログラムから構成ファイルをロードするときに、config.localファイルがあるかどうかを確認する必要があります。そうでない場合は、デフォルトのものconfigをロードします。

結論

config.local機密情報を含む公開は避けてください。デフォルト構成(リモートから複製)は、ユーザー名rootとパスワードr00tが有効である合理的でまれなケースで機能します。config.local.sampleは、ローカルのカスタマイズ手順を提供します(誰かがそれらを必要とする場合)。

config.local彼らがファイルを作成した場合、それは自動的に無視されますが(からのconfig.local行のため.gitignore)、デフォルトのファイルの代わりにプログラムによって自動的に使用さconfigれます。

于 2011-12-12T17:32:21.047 に答える