两个遥控器在一个存储库中

时间:2013-10-13 12:34:37

标签: git gerrit

我有两个存储库 - 一个是起源,有一个应用程序是由其他团队开发的,第二个repo是本地的,由我创建,为我的团队 - 目前它是空的。所以创建它是最简单的部分:

git remote add origin <origin url>
git remote add local <local url>

我想要实现的是能够从原始仓库中的特定分支下载所有提交,对其进行一些更改并从原始上传所有提交,并将我的更改作为新提交到本地仓库 - 我需要保存历史记录来自原始仓库并在顶部添加我的更改。当然后来我想获取原点并再次添加一些更改等等。我的主要问题是连接这两个回购。任何想法如何实现它?

我使用Git和Gerrit修订。

2 个答案:

答案 0 :(得分:3)

您在<origin url>有一个存储库,<local url>有另一个存储库。

您有一个本地存储库,您在其上添加了两个遥控器,原点和本地。 (也许使用比“本地”更有意义的名称。)

您可以通过git fetch origin获取来自原点的所有提交。 - 现在git branch -r应列出所有以remotes/origin为前缀的原始分支。

现在您可以签出一个创建本地主分支的分支git checkout -b master origin/master。您可以执行提交,然后将所有内容推送到local远程:git push local master:master。这会将您的本地主服务器推送到名为master的远程分支。

在您的情况下git branch -a应列出originlocal的本地分支(不带前缀)和远程分支。

只需从一个遥控器获取更改,然后将其推送到另一个遥控器。

答案 1 :(得分:0)

因此,如果您只是要使用Gerrit执行此操作,您可能需要查看Python包git-review https://pypi.python.org/pypi/git-review。我还没有尝试过,但是它会添加commad到git,这样当你进行“git review”而不是推送到origin时,你会发送到gerrit repo(默认名称'gerrit')。

如果你不想得到幻想,虽然michas解决方案是正确的。但是,正如他所提到的,你应该将你的本地回购重命名为'gerrit',所以它的目的更明显。