为不同的机器创建不同的配置文件,然后在每台机器上将其中一个作为真正的配置文件进行符号链接。符号链接本身不会被跟踪,在.gitignore
中添加它。
符号链接可以在post-checkout
钩子中完成。您需要确定当前主机(例如uname -n
),并拥有包含钩子适当设置的文件。
这种解决方案的缺点是它不是动态的。一旦在主机上安装了新版本的Git,你必须检查适当的配置是否能够工作。
如果你想要检查一个值是否被支持,并使用另一个值作为回退选项,那么你必须解析手册,并依赖于它们的内容。Git没有类似的实现。您无法检查一个值是否被支持,也无法编写一个动态选择值的配置文件。
git --version
并基于此选择配置选项的值。虽然这是一个聪明的解决方案,充分利用了Unix文件系统的功能,但它是一个相当hacky的解决方案。您必须保持守护进程运行,如果它停止,Git将无法读取配置并会挂起。~/.signature
向电子邮件添加不同的签名。http://unix.stackexchange.com/a/101248/50602 我想我从一个朋友那里听说过同样的用法,他在签名中发送编程相关的引用和笑话。 - Palec虽然不是全面的解决方案,但我用的一个技巧是将 1.7.12+选项(例如push.default=simple
)放在~/.config/git/config
中,较旧的 Git 不会读取。
我将所有适用于所有Git版本的配置都设置在~/.gitconfig
中。