git - 结合mingw和git

标签 git shell mingw

我在 D:\mingw 中安装了 MinGW。我在 C:\Program Files\git 中安装了 Git。我想使用 MinGW 开发/编译并使用 git 进行版本控制。

我想我必须使用正确的路径,但有些路径是硬编码的。比如msys挂载脚本调用/bin/msysmnt.exe

所以我有两个选择: 1. 使用 git 的 shell(能够在提示时显示分支) 2. 使用 mingw(msys) 的 shell - 有正确的路径

无论我选择哪个,我都必须让其他功能在其下工作。

最佳答案

小更新自 Git 2.x 发布以来,Git for Windows基于 MSYS2并以 32 位和 64 位二进制形式提供。它仍然是一个分支,不能与真正的 MSYS2 互换。


您必须了解一件事:msysgit(您正在使用的 git)是 msys 的一个分支,添加了 git 功能。 msys shell 中包含许多 unix 工具(有关完整列表,请参阅 msysgit/bin 文件夹)。

或许可以向 msysgit bin 文件夹中添加额外的 msys 工具,但我不会为此冒险。

鉴于此,我认为最好将您的工具链添加到 msysgit 路径(使用 bash 配置文件或 msysgit 树中的任何内容)并直接使用它。如果缺少特定的实用程序,请从 MinGW-msys 树中添加它,并希望它能正常工作。

或者,只需使用 cmd.exe 中的 msys-git。从最近的版本开始,它工作得很好(包括 git show、编辑提交消息等...)。为此,将/cmd 目录添加到 PATH,然后您就可以使用所需的所有 git 命令。这就是我所做的,因为 msys 是一个拖累,但却是 git 在 Windows 上工作的必要条件。

更新:在任何类型的 MSYS 下将目录添加到 PATH 的详细说明:

export PATH=/d/MinGW/bin:$PATH

或 hackishly 找到/etc/profile 并更改此部分

if [ $MSYSTEM == MINGW32 ]; then
  export PATH=".:/usr/local/bin:/mingw/bin:/bin:$PATH"
else
  export PATH=".:/usr/local/bin:/bin:/mingw/bin:$PATH"
fi

到:

if [ $MSYSTEM == MINGW32 ]; then
  export PATH=".:/usr/local/bin:/d/MinGW/bin:/bin:$PATH"
else
  export PATH=".:/usr/local/bin:/bin:/mingw/bin:$PATH"
fi

没有更干净的方法,因为 msys-git 的人禁用了 vanilla msys 中存在的 fstab 功能。

Nick 的更新(我做了什么让它起作用):

我在 C:\Program Files\Git\etc 中创建了名为 bash_profile 的文件。这是文件的内容:

export PATH=$PATH:/d/mingw/bin:/d/mingw/msys/1.0/bin

make 和 gcc 工作。

bash_profile 没有随 msysgit 一起提供,因此您不会在更新时覆盖它。

关于git - 结合mingw和git,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5648330/

相关文章:

linux - 如何根据文件移动文件(文件名和文件中的位置)

visual-studio-2010 - mingw 可以构建一个 Visual Studio-2010 项目吗?

Windows 10 上的 Cygwin 和 MinGW

node.js - 为什么 npm install 在 git bash 上不起作用

exec 命令上的 Linux shell 脚本语法错误

python - 我是否需要将 dist 文件夹提交到 git 以便能够使用 git 中的 pip 安装软件包?

linux - 使用shell脚本将变量导出到linux

c++ - scanf 没有接受 long double

Git:如何忽略一个存储库中的文件并将其添加到另一个存储库?

GIT 分支特定文件?