web-dev-qa-db-fra.com

Utiliser Git avec Visual Studio

Longtemps Visual SourceSafe utilisateur (et haineux), je discutais du passage à SVN avec un collègue; il a suggéré d'utiliser Git à la place. Puisque, apparemment, il peut être utilisé en tant qu'égal à égal sans serveur central (nous sommes une équipe de 3 développeurs).

Je n'ai rien trouvé sur les outils qui intègrent Git à Visual Studio, mais une telle chose existe-t-elle?

Quelles sont les technologies disponibles pour utiliser Git avec Visual Studio? Et qu'est-ce que j'ai besoin de savoir sur leur différence avant de commencer?

1446
Herb Caudill

En janvier 2013, Microsoft annoncé ajoutait une prise en charge complète de Git dans tous ses produits ALM. Ils ont publié un plugin pour Visual Studio 2012 qui ajoute l'intégration du contrôle de source Git.

Vous pouvez également utiliser un projet appelé Git Extensions , qui inclut des compléments pour Visual Studio 2005, 2008, 2010 et 2012, ainsi que l’intégration de l’explorateur Windows. Il est régulièrement mis à jour et après l'avoir utilisé sur plusieurs projets, je l'ai trouvé très utile.

Une autre option est Fournisseur de contrôle de source Git .

1069
Jon Rimmer

J'utilise Git avec Visual Studio pour mon port de tampons de protocole en C #. Je n'utilise pas l'interface graphique - je garde simplement une ligne de commande ouverte ainsi que Visual Studio.

Pour l’essentiel, c’est correct - le seul problème est le moment de renommer un fichier. Git et Visual Studio préféreraient que ils soit celui qui le renommera. Je pense toutefois que le renommage dans Visual Studio est la meilleure solution. Faites attention à ce que vous faites ensuite du côté de Git. Bien que cela ait été un peu pénible dans le passé, j'ai entendu dire que cela devrait en fait être assez homogène du côté de Git, car il est à noter que le contenu sera essentiellement le même. (Ce n’est pas tout à fait la même chose d’habitude - vous avez tendance à renommer un fichier lorsque vous renommez la classe, IME.)

Mais fondamentalement - oui, cela fonctionne bien. Je suis un débutant chez Git, mais je peux le faire faire tout ce dont j'ai besoin. Assurez-vous que vous avez un fichier git ignore pour bin et obj, et * .user.

201
Jon Skeet

Fournisseur de contrôle de source Git est un nouveau plug-in qui intègre Git avec Visual Studio.

93
yysun

J'ai un peu étudié la question au travail (avec Subversion et Git). En réalité, Visual Studio dispose d'une API d'intégration de contrôle de source qui vous permet d'intégrer des solutions de contrôle de source tierces dans Visual Studio. Cependant, la plupart des gens ne s'en préoccupent pas pour deux raisons.

La première est que l'API suppose à peu près que vous utilisez un flux de travail à validation verrouillée. Il comporte de nombreux crochets qui sont soit coûteux à mettre en œuvre, soit tout simplement n'a aucun sens lorsque vous utilisez le flux de travail d'édition-fusion plus moderne.

La seconde (qui est liée) est que, lorsque vous utilisez le flux de travail édition-fusion que Encouragement Subversion et Git encouragent, vous n'avez pas vraiment besoin intégration Visual Studio. L’intérêt principal de l’intégration de Visual Studio avec SourceSafe est que vous (et l’éditeur) pouvez indiquer en un coup d’œil les fichiers que vous possédez, lesquels doivent être extraits avant de pouvoir être édités et que vous ne pouvez pas extraire même si vous le souhaitez. Ensuite, il peut vous aider à faire le voodoo de contrôle de révision nécessaire lorsque vous souhaitez modifier un fichier. Rien de tout cela ne fait même partie d'un workflow typique de Git.

Lorsque vous utilisez Git (ou SVN en général), vos interactions de contrôle de révision ont lieu soit avant votre session de développement, soit après celle-ci (une fois que tout est fonctionnel et testé). À ce stade, il n’est vraiment pas très pénible d’utiliser un outil différent. Vous n'êtes pas obligé de changer constamment.

53
T.E.D.

Je trouve que Git, travaillant sur des arbres entiers, bénéficie moins de l'intégration IDE que les outils de contrôle de source basés sur des fichiers ou suivant un modèle checkout-edit-commit. Bien sûr, il est parfois agréable de cliquer sur un bouton pour faire un examen d’histoire, mais cela ne me manque pas beaucoup.

Le vrai devoir est d'obtenir votre fichier .gitignore plein des choses qui ne devraient pas être dans un référentiel partagé. Les miens contiennent généralement (entre autres) les éléments suivants:

*.vcproj.*.user
*.ncb
*.aps
*.suo

mais cela est fortement biaisé en C++ avec peu ou pas d'utilisation des fonctionnalités de style d'assistant de classe.

Mon modèle d'utilisation ressemble à ce qui suit.

  1. Code, code, code dans Visual Studio.

  2. Lorsque vous êtes satisfait (point intermédiaire sensible pour valider le code, basculer vers Git, modifier les modifications et réviser les diffs. Si quelque chose est manifestement incorrect, revenez dans Visual Studio et corrigez-le, sinon validez-le.

Toute fusion, branche, rebase ou autre opération SCM sophistiquée est facile à faire dans Git à partir de la commande Invite. Visual Studio est normalement assez satisfait des modifications apportées, mais il peut parfois être nécessaire de recharger certains projets si vous avez modifié les fichiers de projet de manière significative.

Je trouve que l'utilité de Git l'emporte sur tout inconvénient mineur de ne pas avoir une intégration IDE complète, mais c'est, dans une certaine mesure, une question de goût.

38
CB Bailey

Microsoft a annoncé Git for Visual studio 2012 (mise à jour 2) récemment. Je n'ai pas encore joué avec, mais cette vidéo semble prometteur.

Voici un rapide tutoriel sur l'utilisation de Git à partir de Visual Studio 2012.

Aussi ne manquez pas TortoiseGit ... https://tortoisegit.org/

28
tonyo

Il y a un Visual Studio Tools pour Git de Microsoft. Cependant, il ne prend en charge que Visual Studio 2012 (mise à jour 2).

26
Sheng Jiang 蒋晟

Visual Studio 2013 prend en charge Git de manière native.

Voir le annonce officielle .

19
rhughes

La prise en charge de Git par Microsoft dans Visual Studio est suffisante pour le travail de base (commit/fetch/merge et Push). Mon conseil est juste de l'éviter ...

Je préfère fortement GitExtensions (ou dans une moindre proportion SourceTree ). Parce que voir DAG est pour moi vraiment important de comprendre comment fonctionne Git. Et vous êtes beaucoup plus au courant de ce que les autres contributeurs à votre projet ont fait!

Dans Visual Studio, vous ne pouvez pas voir rapidement les différences entre les fichiers, ni commettre, ni (ajouter à l'index) et ne commettre qu'une partie des modifications. Parcourir votre histoire n'est pas bon non plus ... Tout cela se terminant par une expérience douloureuse!

Et, par exemple, GitExtensions est fourni avec d’intéressants plugins: extraction en arrière-plan, GitFlow, ... et maintenant, intégration continue !

Pour les utilisateurs de Visual Studio 2015 , Git prend forme si vous installez l'extension GitHub. Mais un outil externe est toujours préférable ;-)

18
Philippe

La dernière version de Git Extensions prend en charge Visual Studio 201 maintenant (avec Visual Studio 2008 et Visual Studio 2005 ). .

Je l'ai trouvée assez facile à utiliser avec Visual Studio 2008 et l'interface semble être la même dans Visual Studio 2010.

15
Andreas Klebinger

TortoiseGit a mûri et je le recommande particulièrement si vous avez utilisé TortoiseSVN.

15
SurfRat

La solution la plus simple qui fonctionne réellement consiste à ajouter les commandes TortoiseGit en tant qu’outils externes.

Solution pour ajouter une barre d’outils Git (TortoiseGit) à Visual Studio

14
DalSoft

Il existe actuellement 2 options pour le contrôle de source Git dans Visual Studio (2010 et 12):

  1. Fournisseur de contrôle de source Git
  2. Fournisseur Microsoft Git

J'ai essayé les deux et j'ai trouvé que le premier était plus mature et avait plus de fonctionnalités. Par exemple, il joue bien avec les extensions git et git de tortue, et expose même leurs caractéristiques.

Remarque : Quelle que soit l'extension que vous utilisez, assurez-vous de l'activer à partir de Tools -> Options -> Source control -> Plugin Selection pour que cela fonctionne.

10
Tarun
10
TTT

Comme le dit Jon Rimmer, vous pouvez utiliser GitExtensions. GitExtensions fonctionne dans Visual Studio 2005 et Visual Studio 2008, mais également dans Visual Studio 2010 si vous copiez et configurez manuellement le fichier .Addin.

10
Henk