gpt4 book ai didi

git - 如何设置依赖于版本的 Git 全局配置标志

转载 作者:太空狗 更新时间:2023-10-29 14:13:40 25 4
gpt4 key购买 nike

为了使我所有的配置文件保持同步,我有一个 Github repository使用我的所有设置。虽然这在大多数情况下工作得相当好,但某些应用在不同的机器上有不同的版本。

所以现在我想知道...有什么方法可以设置 Git 全局配置设置,如 this one (这会在我的笔记本电脑上引起警告)而不会在具有旧 Git 版本的不同机器上引起错误?

一个选项可能是包装 git push 命令以在支持时添加标志,但这看起来像是 hack。

最佳答案

不同机器的不同配置

为不同的机器创建不同的配置文件,并在每台机器上符号链接(symbolic link)其中一个作为真实配置。符号链接(symbolic link)本身不会被跟踪,将其添加到 .gitignore 中。

符号链接(symbolic link)可以在 post-checkout hook 中完成.您需要识别当前主机(例如 uname -n)并拥有一个包含适当 Hook 设置的文件。

此解决方案的缺点是它不是动态的。在主机上安装新版本的 Git 后,您必须检查适当的配置是否适用于它。

什么是不可能的

如果您想要检查选项是否支持某个值并使用另一个值作为回退,则必须解析联机帮助页并依赖于它们的内容。 Git 没有类似的实现。您无法检查某个值是否受支持,也无法编写动态选择该值本身的配置文件。

动态生成的配置

但是,可以动态生成配置。与用符号链接(symbolic link)替换普通文件以在多个静态文件之间进行选择的方式类似,您可以将其替换为 named pipe。连接到生成配置的守护进程。

在守护进程中,您可以检查 git --version 并根据它选择配置选项的值。虽然这是一个聪明的解决方案,充分利用了 Unix 文件系统的功能,但它是一个相当 hacky 的解决方案。您必须保持守护进程运行,如果它停止,Git 将无法读取配置并挂起。

关于git - 如何设置依赖于版本的 Git 全局配置标志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21646209/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com