Git 如何将两个分支中的项目合并为一个分支 脚本

Git 如何将两个分支中的项目合并为一个分支 脚本,git,visual-studio,Git,Visual Studio,假设我有一个VisualStudio解决方案,其中包含一个名为ProjectA的项目。此解决方案存在于git中的branchA。然后,有一段时间,我从branchA分支到branchB,为同一个产品创建不同的UI。branchA和branchB的开发都在独立进行。它们在两个分支中仍然保留相同的ProjectA名称;总体结构保持不变 ---branchA---x---x------x---------x \ \---branchB---x-

假设我有一个VisualStudio解决方案,其中包含一个名为
ProjectA
的项目。此解决方案存在于git中的
branchA
。然后,有一段时间,我从
branchA
分支到
branchB
,为同一个产品创建不同的UI。
branchA
branchB
的开发都在独立进行。它们在两个分支中仍然保留相同的
ProjectA
名称;总体结构保持不变

---branchA---x---x------x---------x
              \
               \---branchB---x---x
- ProjectA
  ...
- Solution.sln
当前结构(在两个分支上)
- ProjectA
  ...
- Solution.sln
未来结构
- ProjectA
  ...
- ProjectB
  ...
- Solution.sln
问题: 如何在不重写
branchA
代码的情况下将
branchB
合并到
branchA
?本质上,我希望在
branchA
中包含
branchB
的内容,而不共享任何代码理想情况下,我希望保留
branchB
的历史
,直到找到共同的祖先

选择权
  • branchB
    ProjectA
    重命名为
    ProjectB
    ,并修复
    branchB
    的文件夹结构和丢失历史记录
  • 重写历史记录,就好像文件是在任何修改和添加发生之前在共同祖先的位置复制的一样
我试过的
我尝试了各种合并策略(
no rename
),但它们都移动了大部分内容

可能是项目A、合并B的内容,然后应用隐藏的更改。

似乎不起作用。它携带隐藏并将对所有常见文件应用删除。git merge branchB--strategy=ours如何?我选择选项1
branchB
当时并没有真正丢失,它可能无法自动找到,但它仍然存在。我认为要合并,您应该
git merge-Xno renames--no commit
,然后在提交之前还原
ProjectA
的所有更改(删除)