首页 > 解决方案 > 可以在 Cygwin 中使用 MinGW 版本的 git 吗?

问题描述

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

最近我需要开始使用 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 有什么缺点吗?

标签: gitcygwinmingw

解决方案


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

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

推荐阅读