2011-01-10 12 views
0

ファイルを3つのカテゴリに分けることができる複雑なWebプロジェクトテンプレートがあります。まず、各サーバーで一意でなければならない設定関連ファイルは頻繁には更新されませんが、バージョン管理で持たせるのがよいでしょう。第2に、開発者によってコード化された実際のファイルであり、プロジェクトごとに一意であり、バージョン管理されるメインファイルである開発ファイル。そして最終的には、ユーザーが生成したコンテンツはステージや開発環境ではほとんどのデータをテストしますが、ライブサーバーでは適切なデータであり、理想的にはバージョン管理されている必要があります。Git:ステージ、ライブ、開発用Web環境での "サブプロジェクト"の差別化

すべてのプロジェクトのルートフォルダには、最初のグループに含まれる設定ファイルがあります.3つのフォルダには開発ファイルがあり、最後にWebサイトの画像とユーザー生成ファイルが含まれています。

を私はその後、同じユーザがローカルのライブやステージ上でコンテンツを生成しなければならないとして、フォルダ全体を使用することはできません、と設定を再調整しなければならないそれぞれのファイル:私が試したことは

私は地元から舞台へ、そして舞台から生きていく。

開発ファイルとしてmasterブランチを使用し、ユーザーが生成したコンテンツと設定ファイルに対して別のブランチを使用しようとしましたが、ローカルからステージにマスターをプッシュするなどしました。しかし、ステージでチェックアウトするとき無関係のファイルを削除します。

私は、開発、ユーザ生成コンテンツ、設定用に別々のブランチを作ってみましたが、すべてをマスターにマージするだけでステージに進んでいます。この場合の問題は、コミットプロセスがわずかに複雑になるローカルのdevサーバで発生します。変更されたファイルを追加する。コミットdev;チェックアウトマスター; dev ugcの設定をマージします。私はまた、この場合、ugcで追跡されたファイルの一部が失われることを心配しています。

大きな問題

誰もがそれを可能にするために、現在のソリューションに追加する新しいソリューションや何かを示唆することはできますか?残念ながら、使用されているフレームワーク(私的なもの)は許可されていないため、別個のフォルダを使用することはできません。

答えて

0

それは物事を整理するのは本当に恐ろしい方法ですが、あなたは、特定のリポジトリに属さないものを無視.gitignoreファイルとネストされたGitリポジトリ使用することができます効果的にあなたが持ってできるようになる

.git/ 
.gitignore <---- ignoring everything except settings-file 
your_project 
    .git/ 
    .gitignore <---- ignoring settings-file, user content, and user-content/.git 
    dev-folder-1/ 
    dev-folder-2/ 
    settings-file 
    user-content/ 
    .git/ 
    .gitignore <-- ignoring everything except user content 

をファイル構造の異なる部分を追跡する3つの異なる「重複する」リポジトリ

本当に、ファイルやバージョン管理のニーズを再編成する方法を見つけるほうがよいでしょう。

+0

これはかなりうまくいきますが、設定ファイルを無視できないため、正常に動作しません。 .gitignoreに '!/ your_project/settings-file'という行を続けて入力してみましたが、設定ファイルを強制的に追加することはできません。 –

+0

'!your_project/settings-file' – Amber

+0

(最悪の場合は最悪の場合は最初に追加することができます。一度追加すると、Gitは' .gitignore'に関係なくそれを追跡します。 。) – Amber

関連する問題