结合mingw和git

Nic*_*oft 39 git shell mingw

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

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

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

无论我选择哪个,我必须使其他功能在其下工作.

rub*_*nvb 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
Run Code Online (Sandbox Code Playgroud)

或者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
Run Code Online (Sandbox Code Playgroud)

至:

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
Run Code Online (Sandbox Code Playgroud)

没有更清洁的方法,因为msys-git人员禁用了vanilla msys中存在的fstab功能.

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

我在C:\Program Files\Git\etc被叫中创建了文件bash_profile.这是文件的内容:

export PATH=$PATH:/d/mingw/bin:/d/mingw/msys/1.0/bin
Run Code Online (Sandbox Code Playgroud)

make和gcc工作.

bash_profile不附带msysgit所以如果你更新你不会覆盖它.


Jon*_*vis 16

我通过打开c:\ MinGW\msys\1.0\etc\profile(不在记事本中,没有回车符)并添加以下内容将Git放在MinGW shell上:

export PATH=$PATH:/c/Program\ Files\ \(x86\)/Git/bin
Run Code Online (Sandbox Code Playgroud)

在x86系统上,这将是:

export PATH=$PATH:/c/Program\ Files/Git/bin
Run Code Online (Sandbox Code Playgroud)


sha*_*adi 7

截至今天,只需pacman -S git在 msys2 mingw64 shell 中安装 git


pla*_*ler 6

更新:

现在msys自带了git二进制包.

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

老答案:

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

  • git for windows不仅仅是git可执行文件.它拥有bash提示符,不区分大小写的bash自动完成文件和目录,git的GUI ...等,也有可能是Git是使用不与我MinGW的版本compatibe一些DLL库. (3认同)

han*_*zer 6

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