【问题标题】:Is it OK to use the MinGW version of git with Cygwin?可以在 Cygwin 中使用 MinGW 版本的 git 吗?
【发布时间】:2020-06-19 03:06:55
【问题描述】:

我在 Windows 上编程时使用 cygwin 作为主 shell,而不是 git bash,因为我想访问 Cygwin 上可用的其他程序,所以我为 Cygwin 安装了 git 包,这样我就可以在那里使用 git 并避免需要换壳。

最近我需要开始使用 git lfs 但它不适用于 Cygwin(至少据我所知)。我尝试运行来自 Cygwin 的 git for Windows 附带的 MinGW 版本的 git(位于 c:\Program Files\Git\mingw64\bin)。我期待它无法识别 Cygwin 绝对文件路径,因为 Cygwin 路径看起来像 /cygdrive/c/foo/bar 而不是 /c/foo/bar,因为它们在 MinGW 上,但令我惊讶的是它似乎工作正常。

所以我想我可以卸载 cygwin git 并将 MinGW 版本放在我的 Cygwin 路径上。

像这样工作的潜在好处是我将始终可以访问最新版本的 git 及其扩展,而不是依赖于 cygwin 可用的内容。

这样运行 git 有什么缺点吗?

【问题讨论】:

    标签: git cygwin mingw


    【解决方案1】:

    我认为缺点很小,我自己也做过。但是,在将 Windows 与类 Unix 环境混合时,您确实拥有所有标准的东西,例如:

    • 文件模式。 MinGW git 可能认为一个文件是可执行的,而 Cygwin git 可能不是,并且存储库最终可能会在它们应该可执行时标记为不可执行的一些文件,反之亦然。我见过这样的情况,在结帐后,git 认为文件模式已经改变,即使它没有改变。尝试处理此问题时,请查看 core.filemode 配置设置。如果遇到问题,您可能需要将其设置为 false
    • 文件名大小写。可能最终您的存储库使用了不正确的大小写,这可能会或可能不会对 git 的一个版本产生不同的影响。我自己从来没有遇到过这个问题,但它确实似乎是一个可能的问题。有一个与此相关的core.ignorecase 配置设置,但通常 git 会为操作系统和文件系统正确设置它,所以通常你不应该更改它。 (在 Windows 上,它通常是 true,我认为即使是 Cygwin。)
    • 行尾。通常,git 会尝试做正确的事情。但如果您遇到问题,请查看 core.autocrlf 配置设置。

    【讨论】:

    • 我在 windows 上交替使用 cygwin git、mingw git 和 git,没有任何问题。如上所述,您想忽略文件模式,我从未发现文件名大小写有问题,请将行尾设置为输入。通常鼓励在忽略大小写时发生名称冲突的存储库非常快速地解决该问题。使用保留行尾并可以更改行尾的文件编辑器。保持 git 版本相同或非常接近!
    • 我发现将 /etc/fstab 中的 posix=0 替换为 noacl 以打开 posix 文件权限仿真似乎可以解决文件模式的问题。
    猜你喜欢
    • 2012-10-24
    • 1970-01-01
    • 2011-02-11
    • 2019-05-26
    • 2010-11-10
    • 1970-01-01
    • 1970-01-01
    • 2013-04-14
    • 1970-01-01
    相关资源
    最近更新 更多