gpt4 book ai didi

git - 如何 merge 两个 Git 存储库?

转载 作者:IT王子 更新时间:2023-10-29 01:07:15 24 4
gpt4 key购买 nike

考虑以下场景:

我在自己的 Git 仓库中开发了一个小型实验项目 A。它现在已经成熟,我希望 A 成为更大的项目 B 的一部分,它有自己的大存储库。我现在想将 A 添加为 B 的子目录。

如何将 A merge 到 B 中而不丢失任何一方的历史记录?

最佳答案

如果你想 merge project-aproject-b:

cd path/to/project-b
git remote add project-a /path/to/project-a
git fetch project-a --tags
git merge --allow-unrelated-histories project-a/master # or whichever branch you want to merge
git remote remove project-a

取自:git merge different repositories?

这种方法对我来说效果很好,它更短,而且在我看来更清晰。

如果你想把 project-a 放到一个子目录中,你可以使用 git-filter-repo (filter-branchdiscouraged )。在上述命令之前运行以下命令:

cd path/to/project-a
git filter-repo --to-subdirectory-filter project-a

merge 2 个大存储库的示例,将其中一个放入子目录:https://gist.github.com/x-yuri/9890ab1079cf4357d6f269d073fd9731

注意 --allow-unrelated-histories 参数仅在 git >= 2.9 之后才存在。参见 Git - git merge Documentation / --allow-unrelated-histories

更新:按照@jstadler 的建议添加了--tags 以保留标签。

关于git - 如何 merge 两个 Git 存储库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1425892/

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