Git. 将一个文件的更改合并到同一分支中的其他文件

10

我有两个文件:

    master/newsletter1/file.html 
    master/newsletter2/file.html

newsletter1/file.html有很多我想要合并到newsletter2/file.html中的新更改。我该如何实现?我读过的所有内容似乎都是关于在不同分支之间进行合并,但这些在同一分支中 :/

1个回答

11
我建议使用您选择的第三方差异工具,以便在两个文件之间进行手动合并。
这与源代码控制无关(即管理一个文件的版本历史记录)。
这是有关将一个文件的更改报告到另一个文件(然后源代码控制工具将获取第二个文件的新版本)。
正如Jefromi在评论中提到的,以及他在“对两个单独文件运行git合并算法”中解释的那样,git merge-file实际上可以合并两个不同的文件,只要提供一个共同的祖先即可。
git merge-file <current-version> <common-ancestor> <other-version>

在您的情况下,您可以尝试使用公共祖先与当前文件相同。
git merge-file master/newsletter2/file.html master/newsletter1/file.html master/newsletter2/file.html

你说得完全正确。我改用NetBeans来完成这个任务。 - Nadine
2
如果你有一个合理的共同祖先可以使用,你可以使用 git merge-file - Cascabel
有趣。如果共同祖先与“当前文件”(即目标)相同,那么如何?这对于检测第一个文件(源)引入的更改可能有效。 - VonC
3
这让我找到了正确的方向,但在我的代码库中运行该命令没有任何作用。我猜这是因为“<base-name>”和“<other-name>”是相同的。我没有第三个祖先可以指向,除非可能指向特定的提交ID,但我不知道如何表达这种语法,文档也没有提及。 - Asbjørn Ulsberg

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接