40 votes

Combiner mingw et git

J'ai l'installation de MinGW en D:\mingw. J'ai Git installation dans C:\Program Fichiers \git. Je veux développer/compiler en utilisant MinGW et utiliser git pour le versioning.

Je suppose que je dois utiliser des chemins corrects, mais certains chemins sont codés en dur. Comme msys mount script appelle /bin/msysmnt.exe

J'ai donc 2 options : 1. utiliser le shell de git (pour pouvoir me montrer la branche à l'invite) 2. utiliser le shell de mingw(msys) - pour avoir des chemins corrects

Quel que soit mon choix, je dois faire en sorte que l'autre fonctionnalité fonctionne avec elle.

0 votes

28voto

rubenvb Points 27271

Une chose que vous devez comprendre : msysgit (le git que vous utilisez) est un fork de msys avec des fonctionnalités git ajoutées. De nombreux outils unix sont inclus dans le shell msys (pour une liste complète, voir le dossier msysgit/bin).

Il pourrait être possible d'ajouter des outils msys supplémentaires au dossier bin de msysgit, mais je ne risquerais pas ma tête là-dessus.

A la lumière de ceci, je pense qu'il serait optimal de juste ajouter votre toolchain au chemin msysgit (en utilisant le fichier de profil bash ou autre dans l'arbre msysgit) et de juste l'utiliser. Si un utilitaire particulier est manquant, ajoutez-le à partir de l'arbre MinGW-msys et espérez que cela fonctionne correctement.

Alternativement, utilisez simplement msys-git depuis cmd.exe. Depuis les versions récentes, cela fonctionne très bien (y compris git show, l'édition des messages de commit etc...). Pour cela, ajoutez le répertoire /cmd à PATH, et vous pourrez utiliser toutes les commandes git que vous voulez. C'est ce que je fais, car msys est un frein, mais un mal nécessaire pour que git fonctionne sous Windows.

UPDATE : instructions détaillées pour ajouter un répertoire à PATH sous n'importe quel type de MSYS :

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

ou trouvez /etc/profile et changez cette section

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

Il n'y a pas de moyen plus propre car les gens de msys-git ont désactivé la fonctionnalité fstab présente dans vanilla msys.

Mise à jour de Nick (ce que j'ai fait pour que ça marche) :

J'ai créé un fichier dans C:\Program Files\Git\etc appelé bash_profile . Voici le contenu du fichier :

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

make et gcc ont fonctionné.

El bash_profile n'est pas fourni avec msysgit, donc vous ne l'écraserez pas si vous mettez à jour.

0 votes

Première suggestion - Je sais en général ce qui doit se passer. J'ai besoin des détails. "ajouter la chaîne d'outils au chemin de msysgit" ne dit pas tout

0 votes

Qui a beaucoup aidé. J'ai ajouté mingw/bin et msys/1.0/bin au chemin d'accès et cela a fonctionné. Cependant, il me manque la fonctionnalité de montage. Mes fichiers sont sous /d/mingw/msys/1.0/home/..... Y a-t-il un moyen facile de contourner ce problème ? msysgit avec les fichiers de l'original msys ?

0 votes

Si les fonctionnalités de msys vous manquent, essayez de faire l'inverse : ajoutez le chemin msys-git/bin à votre installation de MinGW-msys (de la même manière). Avec un peu de chance, cela devrait aussi fonctionner. Pour ajouter la chaîne d'outils à MinGW-msys de la manière prévue, exécutez sh /postinstall/pi.sh et suivre les instructions (mais vous le saviez déjà, bien sûr). ;) )

16voto

stimpy77 Points 2791

J'ai mis Git sur le shell de MinGW en ouvrant c : \MinGW\msys\1.0\etc\profile (pas dans Notepad, il n'y a pas de retour chariot) et en ajoutant :

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

Sur un système x86, ce serait :

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

7voto

ntzrmtthihu777 Points 76

Utilisez msys2. C'est msys avec un gestionnaire de paquets (pacman) et un système de construction (makepkg) décents, portés depuis arch linux. J'ai un seul shell avec tous mes outils de développement, git et autres.

7voto

shadi Points 4175

A partir d'aujourd'hui, seulement pacman -S git dans msys2 mingw64 shell installe git

6voto

plan9assembler Points 2209

Mettre à jour :

maintenant msys est livré avec un paquet binaire git.

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

ancienne réponse :

Si vous utilisez la dernière version de mingw & portableGit il suffit de déposer git.exe (extraire le fichier de portableGitXXX.7z) dans C:\MinGW\msys\1.0\bin\

3 votes

Git pour Windows est plus qu'un simple exécutable git. Il possède une invite bash, une autocomplétion bash insensible à la casse pour les fichiers et les répertoires, un gui git ... etc. Il est également possible que git utilise certaines bibliothèques dll qui ne sont pas compatibles avec mes versions de mingw.

0 votes

NickSoft Pour l'instant, l'interface graphique de GitHub pour Windows semble être meilleure (ou du moins plus intuitive) que l'interface graphique fournie avec Git lui-même. D'un autre côté, elle cache également certaines des fonctionnalités de Git et vous oblige à ouvrir un shell lorsque quelque chose d'inhabituel se produit ou est requis (bien qu'elle soit généralement bonne pour vous le dire et vous permettre d'ouvrir facilement n'importe quel shell que vous avez configuré pour exécuter la ligne de commande Git). La version actuelle de inputrc.default qui est fourni avec Msys a également activé l'autocomplétion insensible à la casse, mais je ne suis pas sûr qu'il l'ait fait il y a ~3 ans.

0 votes

Intéressant... Je viens de télécharger MinGW pour effectuer des tests inter-plates-formes... Pas de Git dans la boîte, même si MSYS est installé. Et mingw-get install git résulte en mingw-get.exe: *** ERROR *** git: unknown package .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X