如何将文件合并到其他 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> 值文件:配置文件(未版本化)将从这些值生成。
而且它不会有任何合并问题。