我有一个项目,它使用来自几个不同的git repos(一些由供应商开发)的代码,我想以某种方式将它们组合在一起。我正在考虑使用git子模块,并拉入我需要的每个模块。这似乎工作正常。 此时我正在考虑使用git标记来标记平台的发布。我正在考虑以下几点: -
cd myrepo-master
git submodule update --remote
然后单独标记所有模块。
git submodule foreach 'git tag v0.1'
git submodule foreach 'git push origin v0.1'
主模块本身
git tag v0.1
git push origin v0.1
此时我有点卡住了。我以为我会克隆克隆,然后git checkout就是那个标签......但我想这不是事情的运作方式吗? (在使用git clone时似乎没有办法指定标记)
我是否完全吠叫了错误的树?有没有更好的方法呢?
编辑:为了澄清,我们只是试图确保在特定时间点进入测试环境的所有代码(称之为发布版本?版本?)也被推送到更高的环境,包括产品使用完全相同的代码。但该代码来自几个不同的回购。
答案 0 :(得分:0)
您只需要标记主模块,而不是子模块。例如,在主模块中执行:
git tag v0.1
git push
然后在其他地方,也许在您的构建环境中:
git pull
git checkout v0.1
git submodule update
这将检查主模块标记的提交记录的提交时的每个子模块。
如果你是从头开始,而不是拉,你会这样做:
git clone url-to-the-remote-repo
cd main-module
git submodule init
git checkout v0.1
git submodule update