2013-05-08 169 views
0

我有几个分离的Git存储库 - “核心”和几个组件。他们每个人都有一个标签,如“v1.0.1”,表明它包含在构建中。标签在所有回购中都是相同的。现在我需要通过标记将这些回购合并到单个回购保留历史记录中。这样做的目的是我需要能够构建历史版本(基于标签)。回购中的文件不会冲突(除.gitignore)。通过标记组合git repos保存历史记录

我试过git reset v1.0.1关于“core”,然后合并其他repos上的相应标记(作为核心中的远程添加)git merge comp1/master v1.0.1但它合并了所有来自comp1/master分支的提交。是否有可能做混合与提交不是源头部?也许有一种替代方法?

回答

1

由于您指向comp1/master,因此它将所有内容合并到主内容中,只需将它指向要合并的标记即可。

在这里我告诉你指向标签,但是,我猜每个标签在每个回购中都有相同的名称 - 所以这不会起作用,因为标签名称必须是唯一的。

所以,你想要做的,是开始从组件回购一fetchgit fetch componentARemote什么(你可能需要选择分支获取)。

一旦做到这一点,你就会有合并从您的git回购组件远程所有提交之后,你可以检查什么是提交sha按标签v1.0.1 no组件分支指出然后,你通过指向它的SHA进行合并:。

git checkout v1.0.1 # this is your core tag 
git merge <sha id> 
# and here you are, you merged only the relevant component tag