2013-02-22 49 views
1

这肯定是一个重复,因为它是一个常见的情况,如果这样,请指示我一个很好的链接。如何从多个解决方案中提交相同的项目?

我有一个共同的项目(类库),将用于许多解决方案,比如说,我将在解决方案AB之间共享dll共享解决方案。因此,这是目录结构如何,现在是:

Solution Common (dll) 
     - Project Common 

Solution A 
     - Project A1 

     - Project A2 

     - Project Common #only referenced, so logical presence, not in real 

Solution B 
     - Project B1 

     - Project B2 

     - Project Common #only referenced, so logical presence, not in real 

现在我需要的是

  1. dll一个Git仓库,这样我可以提交更改我做出dll文件。

  2. 一个git仓库在A,以便我可以提交我对A以及dll文件的更改。 (由于在Visual Studio中我有两个项目在一个解决方案下,编辑它们都很容易,但我应该可以将它们都提交在一起)。如果我可以从dll知识库中获取dll的任何特定提交,但它不是绝对必要的,这也是值得欢迎的。

  3. 与上述相同B

基本上我需要3个储存库,这样我可以在3页不同的溶液夹单独提交但我还需要用于待AB之间共享dll库从中我可以提交和拉等

的能力

我的问题是:

  1. 这可能吗?

  2. 如果是这样,我将如何构建我的知识库?

  3. 我将如何提交/将dllA拉到一起?在已经向我涌来

一种解决方案是对所有在其范围之外的3个解决方案一个巨大的资源库,但似乎如此不雅,因为我有其他的解决办法与AB沿文件夹了。

+0

您是否在寻找[git的子模块(HTTP://www.kernel。组织/酒吧/软件/ SCM /混帐/文档/混帐submodule.html)? – madhead 2013-02-22 20:43:17

+0

@madhead我不知道他们是什么,但会研究它 – nawfal 2013-02-22 21:02:30

+0

@madhead斑点,确实有帮助,虽然我找到[官方文档](http://git-scm.com/book/en/Git-Tools - 子模块)由VonC公布,更简单地遵循 – nawfal 2013-02-22 22:05:10

回答

1

我确认这是git submodulesmentionedmadhead)是,但你必须认识到,一个子模块首先是一个固定参考另一回购。
你可以在一个子模块直接进行修改,但你需要:

  • 在那个子模块,并推至其上游回购
  • CD回父回购
  • 承诺在母公司回购(记录为子模块的新的参考)和推动到母体上游回购

(详见在“true nature of submodules

这非常适合component-based方法,其中每个模块可以独立演变,并且将所述模块的特定修订组合以形成完整的程序。
(你的“巨人回购”将是一个基于系统的方法,即所有模块都是可写的,并在他们的最新修订)

+0

,但是并不是每个人都将'dll'解决方案(从'A','B'或'dll'回购)视为单个分支?换句话说,如果我从'A'改变'dll'文件并提交并推送到'A'的中央仓库,那么当我拉动时,我会在'dll'和'B'中得到相同的改变吗? – nawfal 2013-02-22 21:30:17

+0

@nawfal如果你推动并从同一个上游分支拉出,那么是的,'B'中的'dll'将会在'A'的'dll'中得到更改。 VonC, – VonC 2013-02-22 21:32:49

+0

你能澄清什么是“相同的上游分支”吗?我是新来的这些条款。你的意思是“中央回购”吗?我已经在bitbucket/github等中为'A','B'和'dll'分开了中央仓库。我可以从'A'的本地仓库修改'dll',然后推到'A'的中央仓库,并且那么在拉动时从'B'的中央回购中获得'dll'相同的一组更改? – nawfal 2013-02-22 21:33:51

相关问题