Utilisation de Git avec Visual Studio [fermé]

1455

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

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

Quelles sont les technologies disponibles pour utiliser Git avec Visual Studio? Et que dois-je savoir sur leurs différences avant de commencer?

Herbe Caudill
la source
4
Je viens d'ajouter le fournisseur de contrôle de source Git pour VS 2010, donc cela fonctionne toujours.
Wade73
3
Checkout ce tutoriel de l' équipe VS . La prochaine mise à jour; La mise à jour 2 pour VS 2012 arrive tous les jours maintenant. Vous pouvez également télécharger l'aperçu de la technologie communautaire (CTP) pour VS2012 à partir d' ici . Alternativement, si vous êtes dans CMMI, Agile, Scrum 1/2, etc., vous pouvez vous inscrire à un compte gratuit (instances de cloud public ou privé) et inviter des membres (coéquipiers, clients) à ur projeter sur TFS basé sur le Web tfs.visualstudio. com
Annie
3
J'utilise Visual Studio et git depuis deux ans maintenant. Je dirais que la meilleure solution à ce problème est d'utiliser simplement une application de contrôle de source distincte comme Atlassians SourceTree. Il est gratuit, facile à installer, possède une bonne interface graphique et est convivial, vous pouvez parcourir plusieurs référentiels (alias différents projets) comme vous le feriez sur le Web dans Chrome et, surtout, prendre en charge plusieurs systèmes de contrôle de source. Essaie! Vous ne serez pas déçu, je vous assure!
Fazi
2
Git est pris en charge nativement à partir de Visual Studio 2013
rustyx
17
J'adore la façon dont 1342 personnes ont voté pour cette question et un idiot vient et la ferme quand même. Bon StackOverfolow ... Qu'est-ce que cela peut faire si cela ne correspond pas aux critères de SO si tant de gens le trouvent si utile. Le but de ce site n'est pas d'être utile?
thebunnyrules

Réponses:

1070

En janvier 2013, Microsoft a annoncé l' ajout d'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.

Alternativement, il existe un projet appelé Git Extensions qui comprend 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 l'ayant utilisé sur quelques projets, je l'ai trouvé très utile.

Une autre option est Git Source Control Provider .

Jon Rimmer
la source
9
ted.dennison: Selon cette page ( code.google.com/p/gitextensions ), il s'agit d'un plugin VS 2005/2008.
Jonas
10
Pour me corriger - la source est hébergée sur Github, les MSI ne le sont pas.
Chris S
5
J'ai installé des extensions git, cela fonctionne "par" Visual Studio, et pas complètement intégré. Existe-t-il une solution qui permet l'enregistrement et le retrait à partir de l'Explorateur de solutions?
Dani
4
Dani, quelqu'un travaille sur un fournisseur de contrôle de source Git pour VS qui semble fournir un niveau d'intégration légèrement plus profond: gitscc.codeplex.com
Jon Rimmer
3
Existe-t-il des options pour VS 2012?
Earth Engine
202

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

Pour la plupart, ça va - le seul problème est quand vous voulez renommer un fichier. Git et Visual Studio préféreraient qu'ils soient les seuls à le renommer. Je pense que le renommer dans Visual Studio est le chemin à parcourir - faites juste attention à ce que vous faites côté Git par la suite. Bien que cela ait été un peu pénible dans le passé, j'ai entendu dire que cela devrait en fait être assez transparent du côté de Git, car il peut remarquer que le contenu sera essentiellement le même. (Pas tout à fait la même chose, généralement - vous avez tendance à renommer un fichier lorsque vous renommez la classe, IME.)

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

Jon Skeet
la source
35
git devrait être bien avec VS faisant le renommage. Pour un bon suivi du changement de nom dans git log, il vous suffit de vous assurer que vous mettez en scène la partie «supprimer» de la modification dans le même commit que la partie «ajouter». git add -A vous facilite la tâche si votre .gitignore est à jour.
CB Bailey
40
Je suis aussi un débutant git, et pour vous dire la vérité, je préfère l' utiliser depuis la ligne de commande. J'aurais un peu peur de gérer la puissance de Git à une interface graphique qui essaie d'être "intelligente" et de faire de la "magie" derrière mon dos.
hasen
1
Merci pour le conseil. Je viens de passer à git (et github) et je ne regarderai jamais en arrière. Mon client utilise perforce (ugh!). Donc, mon plan est de faire un paiement à partir de perforce, de faire mon travail avec git, puis de le réenregistrer.
Mark Beckwith
7
@CallMeLaNN: Vous faites là une grosse supposition, à propos des débutants de Git ayant des difficultés lors de l'utilisation de la ligne de commande. Regardez le commentaire de hasan j d'avril 2009.
Jon Skeet
J'ajoute généralement .user, * .suo, bin, obj,. et _ * à ma liste d'ignorance ... s'il y a l'un des éléments ci-dessus que je veux ajouter, je peux toujours l'ajouter manuellement.
Tracker1
93

Git Source Control Provider est un nouveau plug-in qui intègre Git à Visual Studio.

yysun
la source
Y a-t-il une chance de le faire fonctionner en 2005?
Art
3
Bien. TBH l'interface graphique de c'est exactement ce que je cherchais lorsque j'ai recherché une interface graphique pour git dans VS 2010. Merci d'avoir posté cela. Les autres réponses ne sont pas ce dont j'ai besoin. Ils sont pauvres par rapport à VisualSVN.
JDPeckham
1
Je recommande de consulter la section de révision dans marketplace.visualstudio.com/… avant de décider de l'installer.
QMaster
53

J'ai examiné cela un peu au travail (avec Subversion et Git). Visual Studio dispose en fait d'une API d'intégration de contrôle de source pour vous permettre d'intégrer des solutions de contrôle de source tierces dans Visual Studio. Cependant, la plupart des gens ne s'en soucient pas pour deux raisons.

La première est que l'API suppose à peu près que vous utilisez un flux de travail verrouillé. Il contient de nombreux crochets qui sont soit très coûteux à implémenter, soit tout simplement insensés 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 d'édition-fusion que Subversion et Git encouragent, vous n'avez pas vraiment besoin de l' intégration de Visual Studio. L'intérêt principal de l'intégration de SourceSafe avec Visual Studio est que vous (et l'éditeur) pouvez voir en un coup d'œil quels fichiers vous possédez, qui doivent être extraits avant de pouvoir les modifier et lesquels vous ne pouvez pas extraire même si vous le souhaitez. Ensuite, il peut vous aider à faire le vaudou de contrôle des révisions que vous devez faire lorsque vous souhaitez modifier un fichier. Rien de tout cela ne fait même partie d'un workflow Git typique.

Lorsque vous utilisez Git (ou SVN en général), vos interactions de contrôle de révision ont toutes lieu soit avant votre session de développement, soit après celle-ci (une fois que tout a fonctionné et testé). À ce stade, ce n'est vraiment pas trop pénible d'utiliser un outil différent. Vous n'avez pas constamment à basculer.

TED
la source
22
Vous ne déplacez ou ne renommez jamais des fichiers / répertoires? J'ai commencé à utiliser VisualSVN il y a quelques mois et je n'ai jamais pu revenir en arrière.
JohnOpincar
10
@TED ​​Pour moi, cela signifie qu'après un long développement, vous devez vous souvenir des raisons de chaque changement de fichier jusqu'à ce que vous vous enregistriez. Si je travaille sur quelque chose et que je vois quelque chose qui doit être corrigé dans une zone non liée, j'aime vérifier, corriger et vérifier en sachant que je peux purger ce changement de ma mémoire. Je préfère le faire depuis VS
Peter M
4
Le plug-in Git Extensions Visual Studio n'essaie pas de se propulser dans l'API de contrôle de source de verrouillage verrouillé de la vieille école que Microsoft a fournie. Il est très bien adapté à un workflow d'édition-fusion et ajoute simplement l'historique de validation / push / pull et de fichier directement à l'intérieur de l'EDI. Avoir l'historique des fichiers dans le menu contextuel est extrêmement utile!
Jacob Stanley
3
Je suis en désaccord principalement parce que le fait de devoir quitter Visual Studio pour l'enregistrement encourage des délais plus longs entre les enregistrements. Trop de gens partent déjà en début de journée et ne s'enregistrent pas avant la fin (ou pire jours plus tard). L'intégration avec Visual Studio vous permet de garder constamment le contrôle des sources dans votre flux de travail.
Chris McGrath
8
L'intégration du contrôle de source Visual Studio à partir de VS2005 (VS2003?) Ne penche pas particulièrement vers un modèle de checkout-checkin. Regardez AnkhSVN par exemple. Je préfère l'intégration VS, car les renommages, etc. sont plus fluides.
Roger Lipscombe
38

Je trouve que Git, travaillant sur des arbres entiers comme il le fait, bénéficie moins de l'intégration IDE que les outils de contrôle de source qui sont basés sur des fichiers ou suivent un modèle d'extraction-édition-validation. Bien sûr, il y a des cas où il peut être agréable de cliquer sur un bouton pour faire un examen historique, mais cela ne me manque pas beaucoup.

La vraie chose à faire est d'obtenir votre fichier .gitignore plein de 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 ceci est fortement biaisé en C ++ avec peu ou pas d'utilisation de fonctionnalités de style 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 raisonnable pour valider le code, passez à Git, modifiez les étapes et passez en revue les différences. Si quelque chose ne va manifestement pas, revenez à Visual Studio et corrigez, sinon validez.

Toute fusion, branche, rebase ou tout autre élément SCM sophistiqué est facile à faire dans Git à partir de l'invite de commande. Visual Studio est normalement assez satisfait des choses qui changent en dessous, bien qu'il puisse parfois avoir besoin 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.

CB Bailey
la source
11
Ce n'est pas le cas, vous devriez certainement avoir votre fichier de projet sous contrôle de version.
CB Bailey
1
C'est très important - se remettre d'avoir oublié d'inclure quelque chose dans .gitignore une fois que vous avez commencé à vous engager et à vous ramifier est pour le moins douloureux ...
Benjol
3
@Benjol: Ça ne devrait pas être si douloureux. Vous avez juste besoin de git rm <file>et echo <file> >>.gitignore; git add .gitignoresur les conseils de vos branches actives. Une fois que vous avez validé le changement, vous pouvez toujours choisir le correctif sur d'autres branches.
CB Bailey
1
@Charles Bailey, voir mes aventures dans cette question: stackoverflow.com/questions/1887049/…
Benjol
9
@Mike Brown: Il ignore les fichiers * .user, qui sont des paramètres spécifiques à l'utilisateur.
Srdjan Jovcic
31

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

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

Chandramouleswaran Ravichandra
la source
Je recommande celui-ci car il s'agit du produit officiel de Microsoft. et il peut installer sur VS 2012 express et
Cheung
28

Ne manquez pas non plus TortoiseGit ... https://tortoisegit.org/

tonyo
la source
Oui, c'est une bonne interface utilisateur, mais non, elle ne s'intègre pas à Visual Studio.
Scott Rippey
3
Le fournisseur de contrôle de source Git ajoute des commandes TortoiseGit au menu contextuel de Visual Studio.
HotN
26

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

Sheng Jiang 蒋 晟
la source
pour visual studio 2012, c'est la meilleure réponse. Il semble qu'ils aient mis beaucoup d'efforts dans la mise en œuvre, et d'après mon expérience, cela fonctionne comme prévu!
RoelF
2
Je n'ai pas été en mesure de comprendre comment configurer «Visual Studio Tools for Git» par Microsoft pour utiliser un dépôt Github privé. Avez-vous vu de la documentation ou des tutoriels à ce sujet?
golliher
Je recommande de consulter la section de révision dans marketplace.visualstudio.com/… avant de décider de l'installer.
QMaster
18

Le support Git fait par Microsoft dans Visual Studio est juste assez bon pour le travail de base (commit / fetch / merge et push). Mon conseil est juste de l'éviter ...

Je préfère fortement les GitExtensions (ou en moins proportion SourceTree ). Parce que voir le DAG est pour moi vraiment important de comprendre comment fonctionne Git. Et vous êtes bien plus conscients de ce que les autres contributeurs à votre projet ont fait!

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

Et, par exemple, GitExtensions est fourni avec des plugins intéressants: 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 encore mieux ;-)

Philippe
la source
GitExtensions fonctionne-t-il pour vous en 2015? le menu ne fonctionne pas pour moi github.com/gitextensions/gitextensions/issues/2815
raklos
15

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

SurfRat
la source
10

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

Henk
la source
bon. Je me demande qui teste et approuve l'interface utilisateur ... les messages partout sont très déroutants ... ma seule supposition est qu'ils se sont précipités pour l'éteindre et voir pourquoi / pourquoi l'utilisateur se plaint.
ramnz
10

Actuellement, il existe 2 options pour Git Source Control 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 tortue git et git, et a même exposé leurs caractéristiques.

Remarque : Quelle que soit l'extension que vous utilisez, assurez-vous de l'activer Tools -> Options -> Source control -> Plugin Selectionpour qu'elle fonctionne.

Tarun
la source