gpt4 book ai didi

git - 如何将一个 repo rebase 到另一个

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

假设我有两个不同的存储库:

Project 1:
Init---A---B---C---HEAD1

Project 2:
Init---D---E---F---G---HEAD2

有没有办法将项目 1(Init 到 HEAD) rebase 到项目 2 的 Init 提交,所以它看起来像这样:

Project 1 & 2:
A---B---C---HEAD1
/
Init---D---E---F---G---HEAD2

项目一和项目二的内容类似。主要区别在于它们的文件结构略有不同,如下所示:

Project1:

MyProject/
File1
File2
File3

Project2:

MyParentProject/
MyProject/
File1
File2
File3
SomeFolder/
SomeOtherFolder/
...etc/

仅供引用:MyProject 不是 MyParentProject 的子模块。 MyProject 和 MyParentProject 作为两个独立的 git 存储库存在于两个不同的位置。

最佳答案

您可以将其中一个视为另一个的远程存储库。在 Project1 中,运行这些命令:

git remote add project2 <path_to_project_2>
git fetch project2
git branch --track project2Branch project2/master
git checkout project2Branch

使用 git log 查找该分支(即 Project2)初始提交的哈希值。然后运行

git checkout master # or whatever branch you want to rebase
git rebase <hash-for-commit>

您现在已将 Project1 重新设置为 Project2 的基础。由于这听起来像是一次性操作,您将只使用一个存储库,因此您可以使用

git remote rm project2

因此,现在您的 master 分支已使用 Project2 的 init 进行了重新设置,并且 project2Branch 具有 Project2 的其余历史记录。这有点像 hack,但它会做你想做的事。

关于git - 如何将一个 repo rebase 到另一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2247487/

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