使用多个存储库进行合法工作

  • 本文关键字:工作 存储 git gitorious
  • 更新时间 :
  • 英文 :


我是gitorious开发团队的成员。但为了开发更大的功能,我克隆了存储库(在gitorious上,而不是在本地)。所以现在有两个gitorious项目,"项目"(原始存储库)和"我的项目"(我的服务器端克隆)。

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

我想拥有的东西,不知道这是否可能:创建主项目的本地克隆,并将"我的项目"作为分支或类似的东西在本地集成,这样我就可以在两个存储库之间轻松切换,从一个库到另一个库,等等。

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

谢谢!

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

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的分支提示为G。假设origin的稳定性非常重要,也就是说,只有在它通过机器上的测试套件后,你才能推它。你还想节省你的日常工作,是吗?这正是personal存储库的用途。git push personal master更改图表如下:

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

personal远程的mastermaster的本地副本现在处于同步状态。运行测试套件后,您将发出git push origin master,生成以下状态:

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

在实践中,您可以将任何一组分支推送到远程,在它们之间共享,或者选择保持一个干净的分支和一个充满半成品主题分支的分支。这取决于你。我确实建议使用像tiggitk这样的历史可视化软件,这两种软件都可以轻松地可视化您的远程状态。

你可以随心所欲地接受这个想法。在工作中,我为我的每一位同事都提供了一个遥控器(我们也使用gitorious),他们都有个人的服务器端克隆。这是一种非常简单的方式来共享代码,同时仍然维护一个幸运的生产存储库。几乎任何工作流都可以从个人远程克隆中受益。

最新更新