我对git的熟练程度超出了通常的commit/pull/push/branch
等命令,所以我不知道找到我想要做的事情需要的正确单词。
我正在寻找有关如何获得我想要的建议和指向URL的建议,以便提供更多解释。
随着时间的推移,项目已从单一产品发展为用于构建最终产品的多个子产品。每个子产品都有自己的子目录树,但是构建子产品的Jenkins作业和最终产品仍然会拉入整个存储库,只是为了构建它应该做的一个产品。
这需要相当长的构建时间,即使是随着时间的推移不会发生很大变化的小型产品。所以我想把每个项目拆分成自己的存储库。同时,它们都遵循几个文件的类似模式,因此我想将其移动到所有人使用的公共代码中。这是一个示意图布局
/project
/subproject1
/common
/src
/test
/subproject2
/common
/src
/test
/common # main project
/src # main project
/test # main project
到目前为止,我认为最好的办法是将所有子项目和主项目分成不同的存储库。保留历史记录会很好,但是过去提交过多个子项目并且没有使用分支,因此可能不可行。
此外,当我将公共代码移到自己的存储库中时,如何将文件返回到公共目录中,以便将公共代码的更改推送到自己的存储库?我已经读过可以解决问题的git-subtree
,但我从未使用过它。
这是最好的前进方式还是有更简单的替代方案?
答案 0 :(得分:0)
随着时间的推移,一个项目已经从单一产品发展成为用于构建最终产品的几个子产品 ...
所以我想把每个项目拆分成自己的存储库
你应该是子模块。
子模块是另一个项目中的独立项目,它在自己的文件夹中自我管理。
在您的情况下,因为您已经将代码放在一个大的存储库中,所以您必须将其分解为小块。
要执行此操作,请使用此文件夹bfc。在您的情况下,只需清除您要更改为subfolders
的{{1}}。