2

Gitolite ミラーリング コンセプトをセットアップしようとしましたが、サブモジュールを除いてすべて正常に動作しています。

スレーブ サーバーからレポ (サブモジュールを含む) を複製してサブモジュールを更新すると、サブモジュールはマスター サーバーから複製されます。

これらのサブモジュールもスレーブサーバーから複製する方法は?

4

1 に答える 1

2

1 つの方法は、たとえば受信後フックで、.gitmodulesサブモジュールのアドレスを変更し、その後にgit submodule sync.

または、「Git サブモジュールの URL が変更されました」と新しいコマンド (Git 2.25+、2020 年第 1 四半期)を参照してください。

git submodule set-url [--] <path> <newurl>

maxmelbinオブジェクト:

しかし、変更.gitmodulesは新しいコミットを意味します-そうですか?

必ずしもそうではありません: その変更を加えてコミットせずに、純粋に「プライベート」(スレーブサーバーに対してローカル) に保つことができます。

質問は、すべてのレポがスレーブにミラーリングされているため、サブモジュールの更新中に、そのコミットの .gitmodules で構成されたサイトの URL に関係なく、ローカルのレポの URL を自動的に選択する方法があるかということでした。

--referenceコマンドのパラメーターはgit submodule updateまさにそれを達成できると思います。

--reference <repository>

このオプションは、追加および更新コマンドに対してのみ有効です。
これらのコマンドは、リモート リポジトリのクローンを作成する必要がある場合があります。この場合、このオプションはgit-clone(1) コマンドに渡されます。
注:およびオプション注意をgit-clone--reference--sharedよく読んでいない限り、このオプションを使用しないでください。

于 2012-08-22T06:07:18.427 に答える