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

时间:2014-12-22 22:00:41

标签: git merge git-merge

我需要在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,就不可能使用特定于语言的概念来解决这个问题。在“制造商”上,我无法进行自定义更改/开发,需要使用现有文件。

1 个答案:

答案 0 :(得分:0)

配置或行为覆盖最好通过一些继承或组合机制在语言本身中处理。 "这就像/files/A,但有这些差异......"。例如,文件包含后跟覆盖定义。如果你没有这个,那么下一个最好的事情是通过一些文本(预处理)生成文件。

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

也就是说,您可以在补丁表单中获得/files/A的更改,并将其应用于patchgit apply。使用修补程序段级别删除组件。类似的东西:

files $ git diff <rev1> <rev2> -- A > ../A-patch.diff
files $ cd ../extensions/override
extensions/override $ git apply -p2 < ../../A-patch.diff