Git:创建回购的最佳策略

时间:2016-07-21 10:50:37

标签: git github

我是Git的新手,我不确定哪种策略最适合我的第一个项目。

e.g。

/src
    /base/forms
    /base//masks
    /base/logics
    /base/communication
    /prj/A
    /prj/B
    /prj/C

src是一个软件。它在3个项目(A,B,C)中使用。每个项目都有点不同。但差异全部在/ prj / X的代码中处理。 / base的代码是相同的。

现在我可能需要更新一个基本模块(例如表格),但仅仅是为了prj B.几周之后,它将适用于每个prj。

组织我的git最好的方法是什么?

其中有一个重要的回购(src)?

或每个部分的回购(base / prj)?

或每个目录的回购(基础/形式,基础/面具,...... prj / A,prj / B,......)?

想想回答我需要一些git的经验,但正如我已经说过的,我是新手。

感谢您的投入!

2 个答案:

答案 0 :(得分:0)

我建议为每个特定版本使用一个repo,为基础对象使用一个repo。

在每个特定的回购中,我都会使用子模块来引入基础项目。这将允许您严格控制每个特定模块的基本模块的“哪个版本”。

实施例

forms
---A---B---C---D
masks
---X---Y---Z    

/prj/A
---Q---W---E---R
with
/prj/A/base/forms
---A---B---C
/prj/A/base/masks
---X---Y


/prj/B
---B---N---M
with
/prj/B/base/forms
---A---B
/prj/B/base/masks
---X---Y---Z

拥有这个'结构'将允许您检查每个子模块的不同提交,但是每个子模块都可以移动它们。每个配置都将在代码中自行记录,其中包含每个基础项目当前使用的版本。

甚至可能值得拥有一个顶级src项目w /每个/ prj /项目的子模块,这样你就可以使用这个'版本历史

,例如

/src HEAD
master A---B---C
/src/prj/A Q---W---E
/src/prj/B B---N

then possibly
/src 
master A---B---C---D
/src/prj/A Q---W---E
/src/prj/B B---N---M

then possibly

/src 
master A---B---C---D---E
/src/prj/A Q---W---E---R
/src/prj/B B---N---M

答案 1 :(得分:0)

我不知道您使用的是哪种语言,但似乎您应该为3个单独的项目使用git repo +为公共基本代码使用1个repo。

然后,您只需将该公共代码导入每个单独的项目中。您可以导入它的特定版本,以防您需要为其中一个版本引入更改