2

2 つの git リポジトリをネストしたい。私はサブモジュールを読み込んでいますが、しばらくの間、それは素晴らしいと思いました。何か他のものが欲しいと思うかもしれません。これが私の状況です:

最初に、すべてのサーバーが Web サイトをホストしており、staging.domain.com および domain.com (ライブ) パターンでセットアップされていることに言及する必要があると思います。

各サーバーには、ウェブサイトである親レポとコアライブラリである子レポがあります。すべてのサーバーでコアを同じにする必要がありますが、Web サイトのリポジトリはすべて、それらが存在するサーバーに固有のものになります。変更をコアに書き込み、すべてのステージング ドメインに同時にプッシュし、品質保証を行い、すべてのライブ サーバーにプッシュしたいと考えています。

私は当初、サブモジュールが私のニーズを満たすだろうと思っていましたが、私が抱えている問題は、コアを一度にすべて更新する必要があることです。サブモジュールを使用すると、コアは更新されますが、親 Web サイトが git submodule update と git commit を実行するまで有効になりません。

gitignore を使用して、コアが入っているフォルダーを無視し、それらを別々のエンティティのように扱うだけではない理由を理解しました。他の誰かがこれをしましたか?どのような問題が発生しますか? より良い提案はありますか?

前もって感謝します。

4

3 に答える 3

2

ステージング サーバーで受信後のコミットを行うと、次のことができるようになります。

  • 更新を裸のレポコアにプッシュします
  • git submodule updateすべてのステージング サイトの トリガー
    • cd1 つのサーバー サイトに/path/staging/site1
    • GIT_DIR=/path/staging/site1/.git WORK_TREE=/path/staging/site1/.git git submodule update
    • サイトごとに繰り返す

アイデアは次のようになります。

  • 一押し
  • 複数の更新
  • サブモジュールの利点を維持する (つまり、サイトが使用しているコアの正確なバージョンを記録する)
于 2012-11-27T07:45:18.833 に答える
2

サブモジュールの代わりにgit-subtreeを使用できます(使用例)

于 2012-11-27T08:12:37.863 に答える
0

親リポジトリの「git status」でリポジトリがクリーンであることを返すかどうかによって異なります。「Untracked files:... core-libraries/」のようなものを返す親リポジトリで「git status」を使用できる場合は、core-libraries リポジトリを親リポジトリの追跡されていない子として持つことができます。

Git は、追跡されていないファイルとディレクトリを気にしません。

于 2012-11-27T21:52:49.413 に答える