Utilisez Cygwin ou la version msysGit de Git, ou les deux?

Je cours Windows 7, je viens d'installer Cygwin pour la première fois aujourd'hui, donc j'ai joué avec. Je veux maintenant commencer à utiliser Git aussi.

D'après ce que j'ai lu, msysGit vous permettra d'utiliser une interface graphique, et il ajoute également un clic droit sur un dossier/fichier Add to Git GUI et Add to GIT Bash Options du menu contextuel.

En même temps, je voudrais utiliser la ligne de commande pour faire des trucs Git mais je pense qu'en tant que débutant Git, ce serait bien d'avoir les menus contextuels et un GUI.

Donc je suis un peu coincé. Quelques questions...

  1. Si j'installe git avec msysGit puis-je toujours exécuter les trucs de ligne de commande pour Git avec Cygwin?

  2. Un livre a dit que vous pouvez installer les versions Cygwin et msysGit it, Si c'est le cas, travaillent-ils tous les deux sur les mêmes fichiers/repo ou est-ce comme avoir 2 repos git séparés sur chaque fichier? Si tel est le cas, cela semble exagéré.

  3. J'ai aussi vu que msysGit a un version portable. Si je devais utiliser cette version portable, cela signifie-t-il que le dépôt Git est stocké sur le périphérique portable USB ou simplement sur le programme? Ce serait cool si c'est le programme Git et le repo de code stocké portable.

22
demandé sur JasonDavis 2011-12-04 02:48:53

6 réponses

1) Si vous n'utilisez pas cygwin pour autre chose, et que vous voulez utiliser Git, allez avec msysgit. Il apporte une bonne intégration Git à Windows et presque tous les outils GUI-les Extensions Git, TortoiseGit et d'autres que je connais, dépendent de msysgit. Aussi avec msysgit, vous pouvez utiliser git de cmd, powershell etc. ce qui n'est pas possible si vous avez seulement cygwin git.

Msysgit est livré avec son propre bash et vous pouvez l'utiliser pour la ligne de commande et vous n'aurez pas besoin de cygwin (encore une fois, du point de vous n'utilisez pas cygwin pour d'autres choses). Presque toutes les fonctionnalités git sont disponibles dans msysgit et à l'exception de certaines modifications spécifiques à Windows( et des performances), vous constaterez que tout fonctionne de manière comparable à git sur *nix. cygwin ne sera pas aussi performante que msysgit et beaucoup moins natif git sur *nix.

2) et il est possible de les avoir tous les deux et vous n'avez pas besoin de repos séparés. Ils peuvent coexister pacifiquement.

3) Les repos Git sont légers car ils n'impliquent que le système de fichiers. Y n'est pas un concept de repos git portable, car ils sont effectivement portables. Msysgit portable est destiné à vous permettre d'utiliser des repos Git sur un système sans installer msysgit.

16
répondu manojlds 2011-12-03 22:59:17

Vous pouvez utiliser l'un ou l'autre ou les deux-mais il y a des choses à surveiller.

À mon travail le plus récent, la plupart de l'équipe utilisait msysGit; J'ai utilisé Cygwin git parce que je suis un utilisateur Cygwin lourd de toute façon.

Les deux traitent les autorisations d'exécution différemment. Lorsque vous extrayez un fichier foo.cmd ou foo.bat dans L'environnement MSYS, il le traite comme exécutable car le suffixe .cmd ou .bat désigne un format exécutable. Cygwin ne le fait pas; c'est un environnement de type Unix, donc il ne suppose pas que un fichier est exécutable en fonction de son suffixe. Donc, les fichiers *.cmd fonctionnaient bien pour tout le monde, mais pas pour moi.

La solution consistait à faire un chmod +x et à vérifier et à pousser le changement, ce qui rendait les fichiers exécutables pour moi et n'affectait pas les autres utilisateurs.

J'ai également rencontré des problèmes avec la saisie de mots de passe en faisant push, pull, ou fetch; le code dans git qui s'éteint en écho fonctionne sous MSYS, mais pas sous Cygwin. J'ai pu éviter cela en utilisant passwordless SSH.

En dehors de cela (et peut-être un ou deux autres problèmes dont je ne me souviens pas pour le moment), les choses se sont passablement bien passées.

14
répondu Keith Thompson 2011-12-03 23:30:52

Git pour cygwin et msysGit installe des exécutables complètement séparés. Le premier ne fonctionne que dans cygwin; le second installe son propre shell bash (et ses outils GUI) mais peut également fonctionner à partir de cmd.exe ou PowerShell. Personnellement, je préfère msysGit.

Les deux fonctionneront sur les mêmes dépôts Git.

4
répondu dahlbyk 2011-12-03 22:54:16

Si vous avez affaire à un dépôt git où certains commits dans son histoire sont disons, quelques concerts, alors vous manquerez de mémoire avec MSysGit, car pour le moment, seule une version 32 bits est disponible (il y a une version 64 bits qui est en pré-apha, mais pour le moment, elle échoue toujours à certains tests et n'est donc pas adaptée à la production). Ce n'est que dans cette situation qu'une version 64 bits de Git devient une nécessité.

UPDATE: il y a un moyen par que vous pouvez toujours utiliser 64bit git sans passer par la route Cygwin:

  1. Installer Les
  2. Installer VirtualBox
  3. Ajoutez ce VagrantFile à un dossier vide
  4. ajustez - le à vos besoins
  5. sur le CD d'invite de commande vers le nouveau dossier et
    1. émettez la commande "vagrant up". Prenez un café pendant que cela se termine.
    2. Ensuite, exécutez la commande "vagrant ssh"

Vous avez maintenant une machine virtuelle Linux avec git 64 bits installé. Ensuite, dans la machine virtuelle:

  1. cd / vagrant
  2. clone git

Laissez-le terminer et vous aurez une installation 64 bits de Git contrôlant votre référentiel sous Windows.

2
répondu Carl 2014-03-30 20:22:22

Vous pourriez confondre git l'outil avec Git repos. msysgit et cygwin git fournissent les outils, les dépôts peuvent exister indépendamment des binaires git.

1 - Oui. msysgit est une implémentation de Git qui utilise MSYS, et a des performances supérieures à Cygwin git. msysgit a également des exécutables de ligne de commande git.exe. msysgit ne dépendra pas d'autres choses, et vous pouvez l'exécuter à partir régulière cmd.

Le git de Cygwin aura des dépendances sur le système Cygwin, et est lent par rapport à msysgit.

Vous pouvez cependant avoir les deux installés, mais si vous n'utilisez pas cygwin pour autre chose, il n'est pas nécessaire de l'installer uniquement pour git. Je suis fortement favorable à msysgit ici.

2-git est git, vous pouvez utiliser msysgit ou git de cygwin pour les mêmes dépôts, mais faites attention aux discordances de version (comme si vous utilisez msysgit 1.7.8 et cygwin git 1.6). Je ne pense pas que ce soit un gros problème mais je n'ai jamais eu plusieurs versions de git installer.

Modifier:

3 - msysgit portable signifie que vous pouvez transporter msysgit autour de quelque chose comme un lecteur flash.

Extra:

Vous pouvez essayer TortoiseGit . C'est une interface graphique pour git, et vous donne des menus contextuels pour faire des choses git dans L'Explorateur Windows. Vous devez avoir msysgit installé avant D'installer TortoiseGit.

1
répondu wkl 2011-12-03 22:57:25

N'installez absolument pas git de cygwin. C'est lent à la mort. Je suis sur le point d'essayer msysgit, en espérant une performance plus saine.

1
répondu WinWin 2017-05-23 12:34:35