我有一个RepoA。它具有分支master和暂存。 存储库B是一个子模块,还将具有“分支机构”母版和暂存。
我希望Repo A主机指向Repo B主机,而Repo A暂存要指向Repo B主机。
不幸的是,.gitmodules文件存在冲突,并且对于CI / CD的构建和发布管道而言,它需要在项目中具有.gitmodules文件。
现在.gitmodules文件,
.d.ts
和submodules文件夹不兼容。
.js
答案 0 :(得分:0)
branch =
设置中甚至没有出现.gitmodules
的要求,更不用说它包含您想要的名称了。设置纯粹是为了您的方便。如果您发现以一种方式设置它,或者根本不以其他方式设置它,或者取消设置它,则很麻烦。
每个子模块应提取的特定提交存储为每个提交的tree
对象内的 gitlink 条目。因此,如果在staging
上的最新提交中有一个tree
表示子模块REPOB应该在a7003f003b196ce1d5677779a7c9cb1447516c79
上,并且您的CI / CD进程(或者我应该说,无论运行什么软件),将该提交检出,然后运行git submodule update
,Git将在该子模块中检出提交a7003f003b196ce1d5677779a7c9cb1447516c79
。如果对master
的最新提交有一个tree
表示子模块REPOB应该在4b237d06f04d383e28f1582e320d1bc5e2637800
上,则当您的CI / CD进程运行git submodule update
时,Git将检出提交{{ 1}}。
当您要为 4b237d06f04d383e28f1582e320d1bc5e2637800
或 master
进行新提交时,请确保要用于 make 该新提交作为其子模块REPOB的gitlink条目,具有您希望CI / CD进程在运行staging
时获取的任何提交哈希ID。这就是git submodule update
便利设置的来源:使用正确的名称可能会很方便。但这可能会引起合并冲突,因此很不方便。选择您认为最方便的便利; Git不会同时给你们两个。
如果您的CI / CD软件自己进行新的提交,请弄清楚 it 如何控制提交时的 its Git存储库索引中的内容。它(您的CI / CD软件)将需要确保其Git存储库的索引具有正确的哈希ID。这可能决定哪种便利最方便。