我需要在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)
该应用程序有一个特殊的概念,我只需将文件放在/file/A
中即可覆盖/files/extensions/override/A
。然后,应用程序使用覆盖文件夹中的文件A而不是A
中的/file
。
现在,当制造商发布新版本时,我更新了制造商分支,然后将更改合并到CustomDevelopment分支中。现在的问题是:如何使用git /files/A
获取/files/extensions/override/A
上所做的更改?
更新: 文件是HTML模板。因此,如果没有git,就不可能使用特定于语言的概念来解决这个问题。在“制造商”上,我无法进行自定义更改/开发,需要使用现有文件。
答案 0 :(得分:0)
配置或行为覆盖最好通过一些继承或组合机制在语言本身中处理。 "这就像/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