gpt4 book ai didi

git - merge 多个 GIT 存储库,同时保留所有标签/分支

转载 作者:太空狗 更新时间:2023-10-29 13:46:16 25 4
gpt4 key购买 nike

我已经设法将来自多个 GIT 存储库的分支 merge 到一个新的存储库中(使用“git filter-branch”和“git fetch/merge”的组合)。但我似乎无法“merge ”这些分支的标签……这有可能吗?就我的(非常有限的)GIT 知识而言,标签指的是单个提交,它本身由 SHA1 哈希值标识,该哈希值基本上是根据所有先前的提交计算得出的。由于来自不同存储库的分支没有共同的祖先提交,我发现很难想象如何在一个新的和完全不相关的存储库。

有什么想法吗?

编辑:澄清我打算做什么:

假设我有两个名为“A”和“B”的存储库,我想将它们 merge 到一个名为“C”的新存储库中。

目录布局是这样的

A||-someFileA|-anotherFileA|-...
B||-someFileB|-anotherFileB|-...

merge 后的仓库应该是这样的

C||-A| |-someFileA| |-anotherFileA| |-...||-B| |-someFileB| |-anotherFileB| |-...

最佳答案

标签不是目录(就像在 Subversion 中那样),因此获取/merge 不会考虑它们。
另外,默认情况下 git fetch 不会获取所有标签(除非指定了 --tags)。

考虑到标签引用了不可变的内容,并且您正在通过 merge 修改该内容,我认为您不能轻易保留它们,除非您手动将具有相似名称的标签重新应用到您认为与原始标签相似的提交.


“组合”这两个存储库的另一种侵入性较小的方法是将 AB 声明为 submodules of C .
不涉及 merge ,AB 保留它们的分支和标签

关于git - merge 多个 GIT 存储库,同时保留所有标签/分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7659565/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com