请求git不合并特定的行

时间:2018-02-07 20:45:38

标签: git

我使用git来处理所有事情,包括管理跨机器的配置。每套机器的一组配置几乎相同,但有几行不同。我用分支来区分机器。

有时,当我在一台机器上进行修改时,我会将更改合并到主更改,以便其他机器可以进行相同的更改。但是,就像我说的,有一些特定于机器的配置,我不想合并。

在当前状态下,这种机器特定配置是可管理的规模,如3,4行。所以我想知道是否有任何git黑魔法告诉git请不要合并那几行中的任何变化?

我在这里澄清一下。 “配置”这个词在这里非常模糊,因为它实际上是模糊的。我实际上使用git进行了许多配置:编辑器,.bashrc,systemd,apache以及许多你可能想到的其他配置。所有这些都是出于个人目的,我使用git主要是为了避免在这些事情上花费太多时间,而我的重点是重现性,所以我想通过克隆和拉动就可以解决问题。

考虑到这些变种,如果git可以像这样工作会很好。有没有机会实现git钩子来实现这样的目标?我之前没有实现任何git钩子所以我不知道它的复杂性。

1 个答案:

答案 0 :(得分:0)

避免任何合并冲突的一种可能性是将模板与给定配置文件的值分开。

为此,设置一个content filter driver,在结账时可以评估主机名并生成配置文件正确的值。

https://git-scm.com/book/en/v2/images/smudge.png

(来自Git Pro Book:" Customizing Git - Git Attributes: Keyword Expansion")

smudge脚本可以将模板文件与值文件(以当前主机名命名)相关联,生成实际的配置文件(然后保持私有,未跟踪。