GIT合并 - 保持一个分支的特定部分和另一个分支的所有其他部分

时间:2018-01-19 15:21:48

标签: git git-merge

这是方案

主分会

- 文件名:xxx-master.txt

- 文件内容:

code code ID=01 code code code

Dev branch

- 文件名:xxx-dev.txt

- 文件内容:

code code ID=02 code code code

将master合并到dev中时,我想保留xxx-dev.txt作为文件名,ID = 02,但是其他一切都来自master。当将dev合并为master时,反之亦然。这是我可以让GIT理解的东西吗?

1 个答案:

答案 0 :(得分:3)

这通常是您需要保留(对于给定文件,此处xxx-dev.txt基于分支的不同内容,一种方法是:

  • 仅版本模板文件xxx-dev.tpl
  • 以分支命名的版本值文件:xxx-dev.devxxx-dev.master:由于它们不同,因此没有合并问题。

为此,您需要在子模块库中注册(.gitattributes declaration content filter driver

smudge (来自“Customizing Git - Git Attributes”的图片,来自“Pro Git book”)

与模板文件(smudge)关联的*-dev.txt脚本会通过查看右侧的值生成(自动git checkout)实际的xxx-dev.txt文件{1}}值文件。 生成的实际xxx-dev.<branch>文件仍然被忽略(xxx-dev.txt)。

请参阅“git smudge/clean filter between branches”的完整示例。

您的.gitignore脚本可以通过以下方式确定已签出分支的名称:

smudge