有多个存储库的功勋

时间:2012-07-10 16:12:42

标签: git gitorious

我是一名优秀的开发团队成员。但是为了处理更大的功能,我克隆了存储库(在本地而不是本地)。所以现在有两个功能强大的项目,“项目”(原始存储库)和“my-project”(我的服务器端克隆)。

现在我的问题是:使用这两个存储库的最佳方法是什么?当然,我可以在两个不同的目录中本地克隆它们,并在on或其他目录中工作。但他们合并我的改变可能会非常复杂。可能我必须在一方发起合并请求并在另一方接受它。

我想要的东西,不知道是否可能:创建主项目的本地克隆并在本地将“my-project”集成为分支或类似的东西,以便我可以在两个存储库之间轻松切换,樱桃挑选从一个到另一个,等等。

这样的事情可能吗?或者,使用多个(服务器端)克隆的最佳方法是什么?

谢谢!

1 个答案:

答案 0 :(得分:0)

使用git remote add将第二个远程数据库添加到本地存储库。这些命令会将您的服务器端gitorious克隆添加为名为“personal”的远程克隆,并从中获取分支引用:

git remote add personal <path_to_server_side_clone>
git fetch personal

您甚至不使用不同的分支。在实践中,您的历史记录在工作日期间看起来像这样(仅针对单个分支进行简化):

  origin/master
        |
A-B-C-D-E-F-G master
      |
personal/master

在上图中,origin的主分支指向提交Epersonal指向D,以及您的本地master' s分支是G。假设origin的稳定性非常重要,即只有在它通过机器上的测试套件后才会推送它。你仍然想保存你的日常工作,是吗?这正是您的personal存储库的目的。 git push personal master更改了图表:

  origin/master
        |
A-B-C-D-E-F-G master
            |
     personal/master

personal遥控器的master和您当地的master副本现已同步。运行测试套件后,然后发出git push origin master,产生此状态:

      origin/master
            |
A-B-C-D-E-F-G master
            |
     personal/master

在实践中,您可以将任何一组分支推送到远程,在它们之间共享,或选择保持一个干净的和一个完整的半完成主题分支。由你决定。我建议使用tiggitk这样的历史可视化软件,这两者都可以直观地显示远程状态。

你可以根据自己的喜好选择这个想法。在工作中,我为我的每个同事(我们也使用gitorious)设置了一个遥控器,所有人都有个人服务器端克隆。这是一种非常简单的共享代码的方式,同时仍然保持blessed production repository.几乎任何工作流都可以从个人远程克隆中受益。