質問: Git によるソース管理方針(プロジェクト管理方針)で意見を頂きたく質問させて頂きます。 仮にZendFrameworkをベースにWEBシステムを組んだとして、今自分のGit管理は、フレームワークのソースも含めた全てのソースをGitで管理しています。 (もちろん、内部生成データ[ログファイル等]は、階層保持だけしてファイルそのものは省いていますが) この管理を行っている理由として以下があります * 他の環境へプロジェクトを移す時、git→pullで行える * フレームワーク側のプロジェクトに何かあった時の担保を取っておきたい 今思いつく限りでは、上記のような理由ぐらいしかないと思います。 しかし、近年composerやdocker等の利用によりフレームワーク側のソースに関しては管理する必要がないのではないかとも思っています。(リポジトリの容量等の問題もありますし) Gitによりソース管理は、 プロジェクト全体を包括して管理されているのか? フレームワーク等ベースの部分は、他の仕組みで担保して実装ソース部分をGit管理しているのか? 他にもあれば、ご意見頂けると大変ありがたいです。 可能であれば、その管理方針にしている理由等も教えて頂けるとありがたいです。
回答: Composerやnpm、bundlerといったパッケージマネージャのある環境の場合、ふつう2通りのデータを記録します(npmの場合は同じファイルに両方記録しますが、Composerやbundlerでは2ファイルに分かれています)。 * インストールするパッケージの指定(ある程度範囲をもって指定できる) * 実際にインストールしたパッケージの記録(1バージョンにロック) 環境が変わるなどで「実際にインストールしたパッケージ」が変化せざるを得ない状況は別として(bundlerではC言語込みのエクステンションなどでOS依存が多発します)、そうでないならこの2つのファイルから`npm install`や`composer install`で元の環境を完全に再現できますので、生成したファイルまでgit管理するのはあまり意味がありません。