0

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

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

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

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

谢谢!

4

1 回答 1

0

用于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的 master 分支指向 commit Epersonal' 指向D, 而你本地master的分支提示是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

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

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

于 2012-07-11T03:13:42.967 回答