如何将文件合并到其他 git 分支?
how to except files from be merged to other git branch?
我有两个分支:一个用于开发,另一个用于生产,
每个在 app.config 文件
中都有自己的配置值
我想要的是在合并或变基这些分支时忽略这些值。
那么也许你最好的选择是甚至不对 app.config
进行版本化
完全正确,但您仍然可以 生成 它,使用 content filter driver, using .gitattributes
declaration.
您想要的版本是一个 模板 文件,以及一个包含每个环境(每个分支)所有可能值的文件。
(图片来自“Customizing Git - Git Attributes", from "Pro Git book”)
生成的实际文件仍然被忽略(.gitignore
):您的实际工作树没有得到 "dirty"。
smudge
脚本:
- 检测正确的分支
- 选择正确的值文件并生成基于在
git checkout
期间应用smudge
脚本的模板的正确文件。
这样,您可以根据需要修改 config.<branch>
值文件:配置文件(未版本化)将从这些值生成。
而且它不会有任何合并问题。
我有两个分支:一个用于开发,另一个用于生产, 每个在 app.config 文件
中都有自己的配置值我想要的是在合并或变基这些分支时忽略这些值。
那么也许你最好的选择是甚至不对 app.config
进行版本化完全正确,但您仍然可以 生成 它,使用 content filter driver, using .gitattributes
declaration.
您想要的版本是一个 模板 文件,以及一个包含每个环境(每个分支)所有可能值的文件。
生成的实际文件仍然被忽略(.gitignore
):您的实际工作树没有得到 "dirty"。
smudge
脚本:
- 检测正确的分支
- 选择正确的值文件并生成基于在
git checkout
期间应用smudge
脚本的模板的正确文件。
这样,您可以根据需要修改 config.<branch>
值文件:配置文件(未版本化)将从这些值生成。
而且它不会有任何合并问题。