如何使用多个git repos(标记的)?

时间:2015-02-12 07:00:51

标签: git tags

我正在开发一个包含多个git存储库的项目。文件夹结构看起来像这样;

repo1/
  +
  ---repo2/
  ---repo3/
  ...
  ---repo8/

因此,要设置我的开发环境,我需要运行类似的东西

git clone http://path_to_git_repo.git top_folder
cd top_folder
git checkout tags/release34
git clone http://path_to_another_repo.git subfolder1
cd subfolder1
git checkout tags/release55
cd ..
git clone http://path_to_another_repo.git subfolder2
cd subfolder2
git checkout tags/rel-44-abc

...等

大约一个星期后,不同的团队会推送他们自己的更新/标签,我需要通过做这样的事情来重新同步;

cd top_folder
git checkout tags/release44
cd subfolder1
git checkout tags/release-bignewfeature
cd ..
cd subfolder1
git checkout tags/release-reverting_tosomethingelse
cd ..

...等

完成整个重新同步非常......重复且令人厌烦。有没有人对我如何让事情变得更容易有任何建议?

我已经听过(并尝试过)m​​r工具,但它只会更新到repo的最新HEAD版本,而我需要更新到某些标签。

2 个答案:

答案 0 :(得分:0)

您应该考虑使用 git submodules ,这样可以避免所有标记/同步步骤。

您的父代仓库repo1只是引用固定SHA1的集合,每个submodule repos一个。

  

大约一周后,不同的团队会推送他们自己的更新/标签

您可以制作每个submodule follow a branch,这意味着重新同步将是:

git submodule update --remote

答案 1 :(得分:0)

更好的方法是使用 git subtree ,更容易维护依赖服务器的存储库。

您可以详细了解子模块和子树 here here

相关问题