我有一个包含子模块的git存储库:
库, 经理, 操作系统, 应用,
git clone git@git/products/xx_unknown.git project
cd project
git submodule init
git submodule update
git submodule foreach git checkout master
git submodule foreach git pull origin master
在上面的git命令后,项目现在处于Build。
状态cd manager
做了一些改变
git commit -am "it is working here"
但是在操作系统的主分支libs中,我的一个团队成员做了更改(100多次提交)
最新更改存在功能问题。所以,我想与我的同事分享推荐点(我机器上所有子模块的本地状态),这样他就会检查所有子模块的参考点,以便进行测试和验证。
我需要像Perforce lable命令这样的东西,它会在当前状态下创建所有子模块的参考点。
答案 0 :(得分:0)
我需要像Perforce lable命令这样的东西,它会在当前状态下创建所有子模块的参考点。
这是git submodule
的用途。
如果您在xx_unknown.git中标记特定提交,那么当您初始化并更新子模块时,它们将被检出到与标记对应的状态。
假设如下:
git clone git@git/products/xx_unknown.git project
cd project
git tag reference_point abcdef
git push origin --tags
然后你会这样做:
git clone git@git/products/xx_unknown.git project
cd project
<强> git checkout reference_point
强>
git submodule init
git submodule update