Git:保持两个分支/ repo相同,除了一个文件

时间:2017-12-22 18:48:12

标签: git

在几个项目中,我需要有两个完全相同的分支/ repos,除了我希望一个提交出现在一个分支而不出现在另一个分支中(例如,因为git repo我正在关注don'为我的机器设置良好的环境变量,或者因为一个分支特定于给定的操作系统而另一个分支用于另一个系统,但两个分支之间的差异只是几行......)。

在理想的世界中,我想在修改它时自动将更改应用到其他分支,或者,对于repos,当上游repo更新时。

我看到了一些涉及git hooks的技巧,但是钩子只是给定计算机的本地,所以如果我克隆了repo,我需要手动重新创建钩子文件...

1 个答案:

答案 0 :(得分:1)

对于使用content filter driver .gitattributes declaration ,这是个好例子。

这意味着您版本的实际值文件,但只有模板文件,以及每个环境具有所有可能值的文件。

smudge (图片来自" Customizing Git - Git Attributes",来自" Pro Git book")

生成的实际文件仍然被忽略(.gitignore) 这意味着您的实际工作树不会变得很脏"。

smudge脚本:

  • 检测正确的环境(不是分支,因为只需要一个)
  • 选择正确的值文件,并根据smudge期间应用git checkout脚本的模板生成正确的文件。