我是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的经验,但正如我已经说过的,我是新手。
感谢您的投入!
答案 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。
然后,您只需将该公共代码导入每个单独的项目中。您可以导入它的特定版本,以防您需要为其中一个版本引入更改