使用msysGit和MinGW之间的相互转换

14

我正在使用Git作为版本控制系统。为此,我安装了msysGit在MSW上检出我的存储库。现在我想使用MinGW编译我的程序,但是发现了以下“问题”:

当我通过mingw-get安装MinGW和MSYS后,我可以编译我的程序,没有问题。 但是我无法访问git。 当我使用Git Bash时,我可以使用git工作,但无法编译。

是否有可能:

  • 将MinGW“安装到”Git Bash中(因为它已经包含了msys,不是吗?)或者
  • 在两个安装之间设置“链接”,使其可以工作。

我更喜欢的方式是能够更轻松地保持两个软件包都更新。

提前致谢 :)


将Mingw和Git结合起来 - leonbloy
4个回答

10
你可以在MinGW中添加一个符号链接到Git,如果你选择了第二个选项。 因此,如果你的msysgit安装在C:\Program Files (x86)\Git中, 打开MinGW shell并输入:
cd /usr/bin
ln -s /c/Program\ Files\ \(x86\)/Git/bin/git git

这将在MinGW的/usr/bin目录下创建一个名为git的符号链接,指向msysgit安装位置。 然后您就可以在MinGW shell中的任何地方使用git命令。


很高兴看到理智回归,而不是像其他无数的黑客一样让读者和作者惊讶地想:哇,它居然能工作。我一直在想,符号链接怎么办?但真正困惑我的是,为什么一开始就需要两个msys环境呢? - nickl-
msysGit是msys的一个子集,但也包括可能需要与git一起使用的其他实用程序,如ssh、curl和vi。如果您还安装了RubyDevKit,则情况会更糟,因为您将获得另一个msys。 - oenpelli
当我尝试在我的MinGW/MSYS提示符(msys-base 2013073200 - 截至2015年3月8日的当前版本)中执行此操作时,生成的符号链接无法正确调用git.exeerror launching git: The filename or extension is too long. 然而,有效的方法是通过~/.profile附加到$PATH;例如,PATH="$PATH:/c/program files (x86)/git/cmd" - mklement0

7
你是如何安装Msysgit的?在要求设置PATH的屏幕上,你选择了第三个选项吗?

enter image description here

(上图来自:http://ekkescorner.files.wordpress.com/2010/02/git-windows-msysgit-install-3.png。)

你需要选择第三个选项,甚至第二个也可以。

下面是我 MingW 的截图。

enter image description here

无论如何,这都涉及到在msysgit中设置正确的路径到git.exe,或者我漏掉了什么吗?


1
我在安装时使用了第二个选项。当我输入“_where git_”时,我得到了“_git.cmd_”文件。因此,我手动将bin目录添加到了PATH中,并且它可以工作了。谢谢 :) - tbolender

1

您需要修复PATH,以便运行与msys或msysgit环境匹配的外部命令。根据您安装这两个shell环境的方式,其中一个将首先出现在PATH中,因此无论您运行哪个bash,您都将从bin目录中运行首个命令。

您可以通过从不同的bash shell运行ls.exe来进行测试,我发现其中一个可行,而另一个则不行,但当我修复了PATH后,它们都能正常工作。

我尝试编写一个聪明的脚本,使其适用于两者,但是由于它们都将自己的bin目录映射到/bin,所以这很困难。当我厌倦尝试解决这个问题时,我创建了msys.sh和msysgit.sh,并添加了以下行:

export PATH=/c/MinGW/msys/1.0/bin:/c/MinGW/bin:${PATH}

或者

export PATH="/c/Program Files (x86)/Git/bin:${PATH}"

分别将这些文件源化到您正在运行的环境中。例如:

source ./msys.sh

其实只需要一个脚本,一个环境就可以了。但是我也安装了RubyDevKit,它遇到了同样的问题,所以为每个环境创建一个脚本似乎更简单。


0

如果你想让每次在Windows上启动git bash时路径都改变,你需要执行以下步骤:

  1. 在Windows运行中,输入“git bash”
  2. Vim ~/.profile
  3. 将“export PATH=/c/MinGW/msys/1.0/bin:/c/MinGW/bin:${PATH}”添加到文件的最后一行。(MinGW应该位于C:\MinGW)
  4. :wq,退出vim。
  5. 退出git bash,并重新启动

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接