2011-08-30 89 views
2

我有一个最初创建用于镜像和 与远程(回购)同步的回购镜像服务器(myrepo)。也就是说,我使用了类似以下的内容来创建它。如何将回购镜像同步到新的上游回购

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

...然后我修改清单文件的读取线使用myrepo服务器 这样用户就可以从myrepo镜

所以现在repoA消失了,不存在了克隆。它已被一个新的 repoB服务器替换为一个不同的URL,它修改了一些分支,并为这些分支使用了一个 新清单文件。

如何使用这个新的repoB重新同步myrepo镜像?我不想吹走我的myrepo ,只是创建一个新的镜子。我想保留它的历史记录,只需更新一些分支以从repoB跟踪,然后使用新清单 文件(我将再次修改以从myrepo获取项目)。

我不知道如何去做这件事?我想知道我是否可以简单地在myrepo中更改一些 ,然后运行“repo sync”以使其与新镜像 同步(即对更新分支执行提取/合并)?或者我必须克隆myrepo然后 做一些像添加repoB作为一个远程,创建跟踪分支,取/合并我自己, ,并尝试推它到myrepo?

回答

1

继续和更改配置文件中的URL /路径:

.git/config 

这将是最快的方式。尽管您可以使用命令来解决每个分支设置。

此外,请注意,如果您要同步时重新登录,则不会丢失任何历史记录。你会失去你的reflog和rr-cache等等。

希望这有助于。

Adam

+0

是的。我发现了一个命令“git remote --set-url ”,我可以使用它来更改repoA url。所以我可以进入myrepo并更改每个git项目的url。之后我才运行'repo sync'来更新镜像吗? –

+0

我在git级别进行git获取。但是,是的,你应该可以。 –