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

Nad*_*ine 9 git merge

我有两个文件:

    master/newsletter1/file.html 
    master/newsletter2/file.html
Run Code Online (Sandbox Code Playgroud)

newsletter1/file.html有很多我想要合并到newsletter2/file.html的新变化.我怎样才能做到这一点?我读过的所有内容似乎都解决了分支之间的合并问题,但这些分支在同一个分支中:/

Von*_*onC 10

我建议使用您选择的第三方diff工具,以便在两个文件之间进行手动合并.
这与源控制无关(即管理一个文件的版本历史).
这是关于报告从一个文件到另一个文件的更改(源控制工具将为第二个文件选择新版本).


正如Jefromi在评论中提到的,正如他在" 对两个单独文件运行git merge算法 "中所解释的那样,git merge-file实际上可以合并两个不同的文件,前提是提供了一个共同的祖先.

git merge-file <current-version> <common-ancestor> <other-version>
Run Code Online (Sandbox Code Playgroud)

在您的情况下,您可以尝试使用与当前文件相同的共同祖先.

git merge-file master/newsletter2/file.html master/newsletter1/file.html master/newsletter2/file.html
Run Code Online (Sandbox Code Playgroud)

  • 这让我走上正轨,但运行命令在我的存储库中什么都不做.我想这是因为`<base-name>`和`<other-name>`是相同的.我没有第三个祖先指向,除非它可以指向一个特定的提交ID,但我不知道表达它的语法,文档没有提到它. (3认同)
  • 如果你有一个合理的东西用于共同的祖先,你可以使用`git merge-file`. (2认同)