2

リモート (repoA) とミラーリングおよび同期するために最初に作成されたレポ ミラー サーバー (myrepo) があります。つまり、次のようなものを使用して作成しました。

cd myrepo
repo init -u git://repoA-server/manifest.git --mirror
repo sync

...次に、ユーザーが myrepo ミラーから複製できるように、マニフェスト ファイルのフェッチ行を myrepo サーバーを使用するように変更しました。

そのため、repoA はなくなり、もう存在しません。一部のブランチを変更し、それらのブランチに新しいマニフェスト ファイルを使用する別の URL にある新しい repoB サーバーに置き換えられました。

myrepo ミラーをこの新しい repoB と再同期するにはどうすればよいですか? myrepo を吹き飛ばして新しいミラーを作成したくありません。その履歴を保持し、いくつかのブランチを更新して repoB から追跡し、新しいマニフェスト ファイルを使用します (これを再度変更して、myrepo からプロジェクトをフェッチします)。

これを行う方法がわかりませんか?単純に myrepo に変更を加えてから、'repo sync' を実行して新しいミラーと同期させる (つまり、更新ブランチのフェッチ/マージを行う) ことができるかどうか疑問に思っています。または、myrepo のクローンを作成してから、repoB をリモートとして追加し、追跡ブランチを作成し、自分でフェッチ/マージして、それを myrepo にプッシュする必要がありますか?

4

1 に答える 1

1

設定ファイルの URL/パスを変更してください:

.git/config

それが最速の方法でしょう。コマンドを使用して各ブランチ設定に対処できますが。

また、同期している場合は、再クローン化しても履歴が失われないことに注意してください。とりわけ、reflog と rr-cache が失われます。

お役に立てれば。

アダム

于 2011-08-30T18:26:01.327 に答える