Verwendung von Git mit Visual Studio

Als langjähriger Benutzer (und Hasser) von Visual SourceSafe diskutierte ich mit einem Kollegen über den Wechsel zu SVN; er schlug vor, stattdessen Git zu verwenden. Er schlug vor, stattdessen Git zu verwenden, da es anscheinend als Peer-to-Peer ohne einen zentralen Server verwendet werden kann (wir sind ein Team von 3 Entwicklern).

Ich habe allerdings nichts über Tools gefunden, die Git in Visual Studio integrieren - gibt es so etwas?

Welche Technologien gibt es für die Verwendung von Git mit Visual Studio? Und was muss ich über die Unterschiede zwischen ihnen wissen, bevor ich damit anfange?

Lösung

Im Januar 2013 kündigte Microsoft an, dass alle seine ALM-Produkte vollständige Git-Unterstützung bieten werden. Sie haben ein Plugin für Visual Studio 2012 veröffentlicht, das die Integration der Git-Quellcodeverwaltung ermöglicht.

Alternativ dazu gibt es ein Projekt namens Git Extensions, das Add-Ins für Visual Studio 2005, 2008, 2010 und 2012 sowie eine Windows Explorer-Integration enthält. Es wird regelmäßig aktualisiert und ich habe es bei einigen Projekten verwendet und fand es sehr nützlich.

Eine weitere Option ist Git Source Control Provider.

Kommentare (21)

Ich verwende Git mit Visual Studio für meine Portierung von Protocol Buffers nach C#. Ich verwende die grafische Benutzeroberfläche nicht - ich habe lediglich eine Befehlszeile sowie Visual Studio geöffnet.

Im Großen und Ganzen ist das in Ordnung - das einzige Problem ist, wenn man eine Datei umbenennen möchte. Sowohl Git als auch Visual Studio möchten lieber, dass sie die Datei umbenennen. Ich denke, dass das Umbenennen in Visual Studio der richtige Weg ist - man muss nur aufpassen, was man danach auf der Git-Seite macht. Obwohl das in der Vergangenheit ein wenig mühsam war, habe ich gehört, dass es auf der Git-Seite eigentlich ziemlich nahtlos sein sollte, weil es bemerken kann, dass der Inhalt größtenteils derselbe sein wird. (Normalerweise nicht ganz dasselbe - man neigt dazu, eine Datei umzubenennen, wenn man die Klasse umbenennt, IME.)

Aber im Grunde - ja, es funktioniert gut. Ich bin ein Git-Neuling, aber ich kann es dazu bringen, alles zu tun, was ich brauche. Stellen Sie sicher, dass Sie eine Git-Ignore-Datei für bin und obj und *.user haben.

Kommentare (13)

Ich finde, dass Git, da es mit ganzen Bäumen arbeitet, weniger von der IDE-Integration profitiert als Versionskontrollwerkzeuge, die entweder dateibasiert sind oder einem Checkout-Edit-Commit-Muster folgen. Natürlich gibt es Fälle, in denen es schön sein kann, auf eine Schaltfläche zu klicken, um die Historie zu überprüfen, aber ich vermisse das nicht sehr stark.

Das wirkliche Muss ist, dass Sie Ihre .gitignore-Datei mit den Dingen füllen, die nicht in einem gemeinsamen Repository sein sollten. Meine enthält im Allgemeinen (neben anderen Dingen) folgendes:

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

aber das ist stark C++-lastig, mit wenig oder gar keiner Verwendung von Funktionen im Stil eines Klassenassistenten.

Meine Verwendung Muster ist etwa die folgende.

  1. Code, Code, Code in Visual Studio.

  2. Wenn ich zufrieden bin (sinnvoller Zwischenpunkt zum Commit des Codes), wechsle ich zu Git, führe die Änderungen durch und prüfe die Diffs. Wenn etwas offensichtlich falsch ist, wechseln Sie zurück zu Visual Studio und beheben Sie es, ansonsten übertragen Sie es.

Jedes Merge, Branch, Rebase oder andere ausgefallene SCM-Sachen lassen sich in Git leicht von der Kommandozeile aus erledigen. Visual Studio ist in der Regel ziemlich glücklich mit Dingen, die sich unter ihm ändern, obwohl es manchmal einige Projekte neu laden muss, wenn Sie die Projektdateien erheblich geändert haben.

Ich finde, dass die Nützlichkeit von Git die geringfügigen Unannehmlichkeiten einer fehlenden vollständigen IDE-Integration überwiegt, aber das ist bis zu einem gewissen Grad eine Frage des Geschmacks.

Kommentare (10)