git 我有两个不同历史的相同回购的foder,如何将一个分支从文件夹B移动到文件夹A,同时仍保留历史记录?

tp5buhyn  于 2023-05-27  发布在  Git
关注(0)|答案(1)|浏览(127)

我有两个相同的git repo文件夹,但历史不同。如何将分支从文件夹B整齐地转移到文件夹A?
我的旧电脑坏了,所以我无法启动它。我有一个repo,在一个分支中有一些变化,我还没有推动。在我开始备份东西并在那里工作之前,我在另一台计算机上克隆了新的存储库。
我现在有两个文件夹相同的回购,后我设法恢复旧的回购从我的硬盘驱动器.
我看到两个潜在的修复方法:
1.开始工作恢复硬盘存储库.在新的repo文件夹中有很多变化,我还没有推,所以它仍然是同样的问题,虽然少。我的旧回购也有很多我不想保留的本地分支,所以如果可能的话,我宁愿用另一种方式来做。
1.从我想要的分支复制文件并丢弃历史记录
应该有第三个分支,它在B repo文件夹中保存分支的历史记录,并将我想要的分支复制到A repo文件夹中。

w41d8nur

w41d8nur1#

我找到解决办法了!
在存储库B中(您要从中提取分支的存储库)

git checkout branch-we-want-to-export
git format-patch --stdout origin/main > ~/whatever/branch-we-want-to-export.patch

在存储库A中(您要导入分支的存储库)

git checkout main && git pull && git checkout -b imported-branch-name
git am -3 < ~/whatever/branch-we-want-to-export.patch

然后,如果你得到任何冲突,你可以像通常的合并冲突一样修复它们,并在修复和git add之后写入git -am continue

相关问题