结合mingw和git

时间:2011-04-13 11:20:39

标签: git shell mingw

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

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

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

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

5 个答案:

答案 0 :(得分:28)

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


你必须明白的一件事:msysgit(你正在使用的git)是一个带有添加git功能的msys的分支。 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功能。

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

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

bash_profile

make和gcc工作。

export PATH=$PATH:/d/mingw/bin:/d/mingw/msys/1.0/bin 未附带msysgit,因此如果您更新,则不会覆盖它。

答案 1 :(得分:16)

我通过打开c:\ MinGW \ msys \ 1.0 \ etc \ profile(不在记事本中,没有回车符)并添加:

将Git放在MinGW shell上
export PATH=$PATH:/c/Program\ Files\ \(x86\)/Git/bin

在x86系统上,这将是:

export PATH=$PATH:/c/Program\ Files/Git/bin

答案 2 :(得分:6)

更新

现在msys附带git二进制包。

http://sourceforge.net/projects/mingwbuilds/files/external-binary-packages/

老答案:

如果您使用的是最新的mingw& portableGit,只需将git.exe(从portableGitXXX.7z中提取文件)放入C:\ MinGW \ msys \ 1.0 \ bin \

答案 3 :(得分:6)

使用msys2。 它的msys有一个不错的包管理器(pacman)和构建系统(makepkg),从arch linux移植。我有一个带有我所有的devtools和git的shell,以及al

答案 4 :(得分:0)

截止到今天,仅pacman -S git在msys2 mingw64 shell中就安装了git