Bruke Git med Visual Studio

Som mangeårig Visual SourceSafe bruker (og hater) diskuterte jeg å bytte til SVN med en kollega; han foreslo å bruke Git i stedet. Siden det tilsynelatende kan brukes som peer-to-peer uten en sentral server (vi er et 3-utviklerteam).

Jeg har imidlertid ikke klart å finne noe om verktøy som integrerer Git med Visual Studio - finnes det noe slikt?

Hvilke teknologier er tilgjengelige for å bruke Git med Visual Studio? Og hva trenger jeg å vite om hvordan de er forskjellige før jeg begynner?

Løsning

I januar 2013 kunngjorde Microsoft at de legger til full Git-støtte i alle sine ALM-produkter. De har publisert en plugin for Visual Studio 2012 som legger til Git-kildekontrollintegrasjon.

Alternativt er det et prosjekt kalt Git Extensions som inkluderer tillegg for Visual Studio 2005, 2008, 2010 og 2012, samt Windows Explorer-integrasjon. Det oppdateres jevnlig, og etter å ha brukt det på et par prosjekter, har jeg funnet det veldig nyttig.

Et annet alternativ er Git Source Control Provider.

Kommentarer (21)

Jeg bruker Git med Visual Studio for min port av Protocol Buffers til C#. Jeg bruker ikke GUI - jeg holder bare en kommandolinje åpen i tillegg til Visual Studio.

For det meste er det greit - det eneste problemet er når du vil gi nytt navn til en fil. Både Git og Visual Studio vil helst at de var den som skulle gi nytt navn til den. Jeg tror at omdøpe det i Visual Studio er veien å gå skjønt - bare vær forsiktig med hva du gjør på Git side etterpå. Selv om dette har vært litt vondt i det siste, har jeg hørt at det faktisk skal være ganske sømløst på Git-siden, fordi det kan legge merke til at innholdet stort sett vil være det samme. (Ikke helt det samme, vanligvis - du har en tendens til å gi nytt navn til en fil når du omdøper klassen, IME).

Men i utgangspunktet - ja, det fungerer fint. Jeg'm en Git nybegynner, men jeg kan få det til å gjøre alt jeg trenger det til. Sørg for at du har en git ignorere fil for bin og obj, og *.user.

Kommentarer (13)

Jeg synes at Git, som jobber med hele trær som det gjør, drar mindre nytte av IDE-integrasjon enn kildekontrollverktøy som enten er filbaserte eller følger et utsjekk-rediger-commit-mønster. Selvfølgelig er det tilfeller der det kan være fint å klikke på en knapp for å gjøre litt historikkundersøkelse, men jeg savner ikke det veldig mye.

Den virkelige må-gjøre er å få .gitignore-filen full av ting som ikke bør være i et delt depot. Mine inneholder vanligvis (blant annet) følgende:

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

men dette er tungt C++ partisk med liten eller ingen bruk av noen klasse veiviser stil funksjonalitet.

Bruksmønsteret mitt er omtrent som følger.

  1. Kode, kode, kode i Visual Studio.

  2. Når du er fornøyd (fornuftig mellomliggende punkt for å forplikte kode, bytt til Git, sceneendringer og gjennomgå diffs. Hvis noe er åpenbart galt, bytt tilbake til Visual Studio og fikse, ellers begå.

Enhver sammenslåing, forgrening, rebase eller andre fancy SCM-ting er enkelt å gjøre i Git fra ledeteksten. Visual Studio er normalt ganske fornøyd med at ting endrer seg under det, selv om det noen ganger kan være nødvendig å laste inn noen prosjekter på nytt hvis du har endret prosjektfilene betydelig.

Jeg synes at nytten av Git oppveier enhver mindre ulempe ved ikke å ha full IDE-integrasjon, men det er til en viss grad en smakssak.

Kommentarer (10)