这是场景
主分公司
- 文件名:xxx-master.txt
- 文件内容:
code
code
ID=01
code
code
code
开发分支
- 文件名:xxx-dev.txt
- 文件内容:
code
code
ID=02
code
code
code
将master合并到dev中时,我想保留xxx-dev.txt作为文件名,ID = 02,但是其他一切都来自master.当将dev合并为master时,反之亦然.这是我能让GIT理解的吗?
这通常是您需要根据分支保留(对于给定文件,此处xxx-dev.txt)不同内容的情况,一种方法是:
xxx-dev.tplxxx-dev.dev, xxx-dev.master: 因为它们不同,所以不存在合并问题。为此,您将在子模块存储库中注册(在.gitattributes声明中)内容过滤器驱动程序。
(图片来自《自定义 Git - Git 属性》,来自《Pro Git book》)
smudge与模板文件 ( *-dev.txt) 关联的脚本将通过查找正确值文件中的值来生成(自动在)实际git checkout文件。生成的实际文件仍然被忽略(由)。 xxx-dev.txtxxx-dev.<branch>xxx-dev.txt.gitignore
请参阅“分支之间的 git smudge/clean 过滤器”中的完整示例。
您的smudge脚本可以通过以下方式确定签出分支的名称:
branch=$(git rev-parse --symbolic --abbrev-ref HEAD)
Run Code Online (Sandbox Code Playgroud)