Использование msysGit из MinGW и наоборот

Я использую git в качестве системы контроля версий. Для этого я установил msysGit для проверки своих репозиториев на MSW. Теперь я хочу скомпилировать свои программы с помощью MinGW и обнаружил для себя эту «проблему»: когда я устанавливаю MinGW и MSYS через mingw-get, я могу скомпилировать свою программу без проблем. Но я не могу получить доступ к git. Когда я использую Git Bash, я могу работать с git, но не могу компилировать.

Есть ли возможность:

  • установить MinGW «в» Git Bash (потому что он уже содержит msys, не так ли?) ИЛИ
  • установить «ссылки» между обеими установками, чтобы они работали.

Я бы предпочел, чтобы мне было легче поддерживать оба пакета в актуальном состоянии.

Заранее спасибо :)


person tbolender    schedule 04.05.2011    source источник
comment
связанные: stackoverflow.com/questions/5648330/combining-mingw-and- гит   -  person leonbloy    schedule 16.09.2012


Ответы (4)


Как вы установили Msysgit? Вы выбрали третий вариант на экране, где запрашивается установка PATH?

введите здесь описание изображения

(скриншот выше с: http://ekkescorner.files.wordpress.com/2010/02/git-windows-msysgit-install-3.png.)

Вы должны выбрать третий вариант, или даже второго может быть достаточно.

Ниже скриншот из моего MingW

введите здесь описание изображения

В любом случае, все дело в том, чтобы установить правильный путь к git.exe в msysgit, или я что-то упустил?

person manojlds    schedule 04.05.2011
comment
Я использовал второй вариант при установке. Просто когда я ввожу где git я получаю файл git.cmd. Поэтому я вручную добавил bin напрямую в PATH, и это работает. Спасибо :) - person tbolender; 05.05.2011

Вы можете добавить символическую ссылку на git в MinGW, если вы выбрали второй вариант.

Итак, если ваша установка msysgit находится в C:\Program Files (x86)\Git, откройте оболочку MinGW и введите:

cd /usr/bin
ln -s /c/Program\ Files\ \(x86\)/Git/bin/git git

Это создаст символическую ссылку с именем git в /usr/bin MinGW, указывающую на установку msysgit. Затем вы можете использовать команду git где угодно из оболочки MinGW.

person Guilherme    schedule 06.07.2012
comment
Рад видеть, что здравомыслие возвращается, в отличие от бесчисленного множества других хаков, оставляющих не только читателя, но и автора пораженными: «Вау, это действительно работает». Я все думаю, симлинки кто-нибудь? Что меня действительно сбивает с толку, зачем начинать с двух сред msys? - person nickl-; 23.03.2013
comment
msysGit является подмножеством msys, но также включает в себя дополнительные утилиты, которые могут потребоваться для работы с git, такие как ssh, curl и vi. Еще хуже, если у вас также установлен RubyDevKit, когда вы получаете еще один msys. - person oenpelli; 07.08.2014
comment
Когда я пробую это из командной строки MinGW/MSYS (msys-base 2013073200 — актуальна на 8 марта 2015 г.), полученная символическая ссылка не может правильно вызвать git.exe: error launching git: The filename or extension is too long. Однако работает добавление к $PATH через ~/.profile; например, PATH="$PATH:/c/program files (x86)/git/cmd" - person mklement0; 08.03.2015

Вам нужно исправить PATH, чтобы вы запускали внешние команды, соответствующие среде msys или msysgit. В зависимости от того, как вы установили эти две среды оболочки, одна из них будет первой в PATH, поэтому независимо от того, какой bash вы используете, вы будете запускать внешние команды из каталога bin, который находится первым в PATH.

Вы можете проверить это, запустив ls.exe из разных оболочек bash, я обнаружил, что один работает, а другой нет, но когда я исправил PATH, они оба работали.

Я попытался разработать умный сценарий, который будет работать для обоих, но это сложно, поскольку они оба сопоставляют свой собственный каталог bin с /bin. Когда мне надоело пытаться это решить, я создал msys.sh и msysgit.sh со строкой:

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

or

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

соответственно. Эти файлы должны быть загружены в среду, в которой вы работаете. Например:

source ./msys.sh

На самом деле вам нужен только один скрипт, так как будет работать одна среда, но я также установил RubyDevKit, у которого была та же проблема, поэтому мне показалось проще создать скрипт для каждой среды.

person oenpelli    schedule 07.08.2014

Если вы хотите, чтобы путь менялся каждый раз, когда вы запускаете git bash в Windows. Вам нужно сделать следующие шаги:

  1. В окне запуска введите «git bash»
  2. Вим ~/.профиль
  3. Добавьте «export PATH=/c/MinGW/msys/1.0/bin:/c/MinGW/bin:${PATH}» в последнюю строку файла. (MinGW должен находиться в C:\MinGW)
  4. :wq, существует vim.
  5. выйдите из git bash и снова перезапустите
person mark gu    schedule 09.03.2017