1

私のシステム管理者は、構成ファイルを保存するためにファイルシステムのルートにgitリポジトリを配置しました。つまり、ファイルシステムのどこにいても、そのリポジトリに追加できます。これは、ルートが常に存在するため、プロジェクトにリポジトリが存在しない場合、「gitstatus」はリポジトリが存在しないことを通知しないことを意味します。

これは私には危険なようです。私が間違っている?

私にとって、gitリポジトリを持つことは、このディレクトリ内のすべてがソース管理下にあるという暗黙の契約です(.gitignoreのおかげで無視されるオブジェクトファイルなどを除く)。この古い学校のソース管理は考えていますか?

4

2 に答える 2

6

これは私には危険に思えます。私が間違っている?

危険ではなく、混乱を招くと私は主張します。私が働いている場所でこのようなことを試みましたが、あなたが説明したまさにその理由で最終的にそれを放棄しました. 私たちの解決策は、ほとんどの構成を Puppet に移行することでした。そのため、バージョン管理を構成管理システムに適用し、通常はシステムに直接変更を加えていません。

システム管理者が持っているオプションの 1 つは、.gitディレクトリを別の場所に置きGIT_DIR、リポジトリと対話する必要があるときに環境変数を適切に設定することです。例えば:

GIT_DIR=/etc/sysrepo.git git add /etc/someconfig.conf

.gitこれにより、ディレクトリをファイルシステムのルートに配置することに関連する問題が回避されます。

于 2012-05-08T17:10:25.170 に答える
1

私は、サーバー上で必要に応じて最小限のソフトウェアを実行する学校に通っています。構成の変更を管理するために git を実行することは悪い考えではありませんが、レポジトリをサーバーのルートに配置することは、ハード ドライブ容量の点で潜在的に危険です。誤って 5 GB のデータベース ファイルをリポジトリに追加し、画面を読み取らずに構成ファイルをいくつかコミットすると、ハード ドライブの容量が失われることを想像してみてください。

より安全なルートと私が現在実装しているものは、中央の場所を見つけてそこにレポを作成することです. サーバーごとにサブフォルダーを作成し、サーバーとそのフォルダー間で /etc およびその他のファイルを scp できるシェル スクリプトを作成します。次に、そこから git で追跡します。

これをいくつかの場所で実装しましたが、うまくいきました。解決しなければならない明らかなセキュリティの問題がありますが、克服することは不可能ではありません。

于 2012-05-09T00:31:11.707 に答える