首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否有可能在另一个提交中使用给定的基数合并来自不同提交的2个文件?

是否有可能在另一个提交中使用给定的基数合并来自不同提交的2个文件?
EN

Stack Overflow用户
提问于 2021-05-18 20:55:00
回答 1查看 30关注 0票数 0

我遇到了一个问题,当两个分支独立开发了很长一段时间,其中一个文件被移动到另一个目录中

假设我们有一个名为src/dir1/Main.cpp的文件,以及两个具有公共base的分支branch1branch2

然后他们将文件移动到branch1中,现在文件名为src/dir2/Main2.cpp

当然,这两个分支也独立地修改了该文件

现在,我想在branch1上重新设置branch2的基址,并将这两个更改保留在文件src/dir1/Main.cpp (原始文件)中。

代码语言:javascript
运行
复制
git checkout branch2
git rebase branch1

Git询问我是要使用修改版本还是删除版本,我选择了删除版本。然后,我想在base:src/dir1/Main.cpp的基础上进行文件branch1:src/dir1/Main.cpp<old_branch2_hash>:src/dir2/Main2.cpp的合并。有没有可能使用内置的git命令(可能调用默认的mergetool),或者不使用类似$()的语法?我希望它在linux和windows系统上都能工作,而不需要手动复制这些文件并调用合并工具。

EN

回答 1

Stack Overflow用户

发布于 2021-05-18 21:39:25

根据git merge-file的说法,尝试

代码语言:javascript
运行
复制
git cat-file -p branch1:src/dir1/Main.cpp > current.cpp
git cat-file -p old_branch2_hash:src/dir2/Main2.cpp > other.cpp
git cat-file -p base:src/dir1/Main.cpp > base.cpp
git merge-file current.cpp base.cpp other.cpp

合并结果将写入current.cpp。可能会有冲突。在解决了冲突之后,您可以复制current.cpp来覆盖目标文件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67586635

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档