0

我有几个独立的 Git 存储库——“核心”和几个组件。它们每个都有一个类似“v1.0.1”的标签,表明它包含在构建中。所有 repos 中的标签都是相同的。现在我需要将这些存储库组合成单个存储库,按标签保存历史记录。这样做的目的是我需要能够构建历史版本(基于标签)。repos 中的文件不冲突(.gitignore 除外)。

我尝试git reset v1.0.1了“核心”,然后与其他存储库上的相应标签合并(在核心中添加为远程) ,但它合并了分支中的git merge comp1/master v1.0.1所有提交。comp1/master是否可以与不是源头的提交进行 git 合并?也许有另一种方法?

4

1 回答 1

1

它在 master 中合并所有,因为您指向comp1/master,只需将其指向您要合并的标签。

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

因此,您需要做的是fetch从组件 repo 开始(git fetch componentARemote(您可能需要选择要获取的分支)。

完成此操作后,您将在 git 存储库中合并来自远程组件的每个提交。然后,您可以检查sha标记指向的提交是什么,而v1.0.1不是组件分支。然后,通过指向它的 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
于 2013-05-08T18:55:14.827 回答