将特定文件中的更改合并到Git中同一分支中的副本

将特定文件中的更改合并到Git中同一分支中的副本,git,merge,git-merge,Git,Merge,Git Merge,我需要将Git中某个特定文件a上的更改合并到同一分支中的另一个文件a(它是a的副本,之后会有更改)。我是git新手,但我可能无法在这里使用分支 我有两个分支机构: Branch "Manufacturer" Branch "CustomDevelopment" 以及以下文件: "Manufacturer" -> /files/A "CustomDevelopment" -> /files/A "CustomDevelopment" -> /files/extensions/o

我需要将Git中某个特定文件a上的更改合并到同一分支中的另一个文件a(它是a的副本,之后会有更改)。我是git新手,但我可能无法在这里使用分支

我有两个分支机构:

Branch "Manufacturer"
Branch "CustomDevelopment"
以及以下文件:

"Manufacturer" -> /files/A
"CustomDevelopment" -> /files/A
"CustomDevelopment" -> /files/extensions/override/A (copy of /files/A with modifications)
应用程序有一个特殊的概念,我可以通过简单地将文件放入
/files/extensions/override/a
来覆盖
/file/a
。然后,应用程序使用覆盖文件夹中的文件A,而不是
/file
中的
A

现在,当制造商发布新版本时,我更新制造商分支,然后将更改合并到CustomDevelopment分支。现在的问题是:我如何才能将git对
/files/A
所做的更改转换为
/files/extensions/override/A

更新:
文件是HTML模板。因此,在没有git的情况下,不可能使用特定于语言的概念来解决这个问题。在“Manufacturer”上,我无法进行自定义更改/开发,需要使用现有文件。

配置或行为重写最好通过某种继承或组合机制在语言本身中处理。“这就像是
/files/A
,但有这些区别……”。例如,文件包含之后是覆盖定义。如果没有,下一个最好的方法是通过一些文本(预)处理生成文件

您确实希望避免不断地将
/files/A
中的更改合并到派生的
/files/extensions/override/A

这就是说,您可以以补丁的形式获取对
/files/A
的更改,只需使用
patch
git apply
应用即可。使用“修补条”级别删除零部件。比如:

files $ git diff <rev1> <rev2> -- A > ../A-patch.diff
files $ cd ../extensions/override
extensions/override $ git apply -p2 < ../../A-patch.diff
文件$git diff--A>。/A-patch.diff
文件$cd../extensions/override
扩展/覆盖$git apply-p2<../../A-patch.diff

谢谢!看来我得试试你最后的建议(补丁)。因为这些文件是HTML文件,所以我不能使用其他东西。问题:Git修补程序/应用程序是否考虑了这一事实,即Oraby/A是文件/ A的副本,或者是两个不同文件之间的普通的正常合并操作,而不知道/使用相同的原点信息吗?@可以通过文本处理生成CubsielNeX HTML文件。项目源代码的结构不必是部署内容的镜像;部署的结构可以通过一些构建过程生成。嘿,谢谢你的想法,但是这些文件已经是生成网页的模板了。所以它不是那样工作的。如果没有办法用GIT正确地实现这一点,那么我们必须像看上去那样手动进行合并。@CubeSilence模板可以由元模板生成。例如,PHP代码在服务器应用程序中生成网页。如果您可以使用诸如M4之类的宏处理器从一个文件生成类似的PHP,那么您就不会希望复制和粘贴大量类似的PHP。