1

現在、SVN を使用して jboss サーバー構成を管理しています。各作業コピーに同じサブディレクトリの複数のコピーが必要ですが、サーバー上の同じディレクトリを参照して、ファイルを変更するとすべてのコピーが更新されるようにします。

例:

  • /server/bin (共有)
  • /server/node-01 (リポジトリ /server/node のコピー)
  • /server/node-02 (リポジトリ /server/node のコピー)

gitを使用して同じことを達成することは可能ですか? (多くの)同様の質問で決定的な答えを見つけることができませんでした。

4

1 に答える 1

2

私が知っている最良の概算は git-submodule [1] です。

サブリポジトリを定義し、「親」リポジトリに、各サブリポジトリが持つべき正確なリビジョンを指定するハッシュを概念的に含めることができます。

HEAD がサブリポジトリに移動すると、「git status」と「git diff」はそれを親リポジトリのハッシュ変更として報告します。

残念ながら、git サブモジュールは少し扱いに​​くいです。

  • 親リポジトリをプルしても、子リポジトリは自動的に更新されません。代わりに、子リポジトリは、ローカルの変更 (新しい位置を元の位置に戻す) を行ったかのように表示されます。

  • 親リポジトリをプル/マージした後は、毎回「git submodule update」を明示的に呼び出す必要があります (または、もちろんスクリプトを作成する必要があります)。

これは、サブモジュールが存在する場合、親に対する「git rebase」およびその他の操作がうまく機能しないことも意味します。ただし、ここでは動作をきめ細かく制御できるため、回避できないことはありません。

[1] http://kernel.org/pub/software/scm/git/docs/git-submodule.html

于 2011-07-13T15:38:10.373 に答える