Es gibt unzählige Fragen und Antworten zu Git im Vergleich zu TFVC-Quellcodeverwaltung, aber keine aktuellen Antworten behandeln die Integration von Git in Team Foundation Server/Service, die ich finden kann.
Ich beginne mit der Green-Weide-Entwicklung mit einer Vielzahl von Sprachen (C#, C++, PHP, Javascript, MySQL) und Visual Studio 2013. In Zukunft wird es einige iOS-Entwicklungen geben. Ich bin sehr vertraut mit SVN, VSS und TFVC für die Quellcodeverwaltung. Allerdings habe ich nie Git verwendet. Ich bevorzuge TFS für Prozessmanagement/agile Entwicklung… Es ist nicht perfekt, aber es lässt sich gut in Visual Studio integrieren.
Also, um mir bei der Entscheidung zwischen diesen beiden Systemen zu helfen …
Was sind die großen Unterschiede zwischen TFVC und Git für die Quellcodeverwaltung bei der Verwendung von Visual Studio 2013?
- Ist der einzige Vorteil in meinem Fall ein lokales Repository (um nicht zu sagen, dass es unbedeutend ist) und iOS-Entwicklungsunterstützung?
- Der einzige Nachteil von Git ist die Befehlszeilenschnittstelle (einige würden argumentieren, dass dies kein Nachteil ist ;-P).
- Haben Sie Erfahrung mit der Visual Studio 2013-GUI für Git? Reicht das aus, um grundlegendes Verzweigen/Zusammenführen ohne die Befehlszeilenschnittstelle zu unterstützen?
- Gibt es eine ausführliche Startanleitung für Git, die zeigt, wie Git mit Visual Studio 2013 verwendet wird? Microsoft hat ein Video zur Integration eines vorhandenen Git-Repositorys in Visual Studio 2013, aber ich suche nach einem Neuanfang mit Git und VS 2013.
Ich suche hier kein Buch, sondern nur ein paar Stichpunkte und vielleicht einige relevante Links von Leuten, die sowohl TFVC als auch Git verwendet haben.
Aktualisieren
Seit 2013 ist viel passiert:
- Microsoft hat Team Foundation Server, Azure DevOps Server und Azure DevOps um ssh-Unterstützung erweitert.
- Visual Studio 2019 16.8+ wird mit einem komplett überarbeiteten Git-Client ausgeliefert.
- Microsoft hat seine eigenen internen Produkte aus TFVC entfernt. Windows- und Office-Quellen leben jetzt in Git in Azure DevOps.
- Microsoft hat GitHub gekauft, das jetzt der Hauptfokus für DevOps-bezogene Angebote ist. Viele Leute, die zu Azure DevOps beigetragen haben, sind infolgedessen zu GitHub gewechselt.
- Virtual File System for Git & Git Large File System haben viele der Gründe behoben, warum Menschen bei TFVC geblieben sind.
- Azure DevOps verfügt über ein integriertes Migrationstool, das (einen Teil) Ihres TFVC-Verlaufs in ein Git-Repository konvertieren kann.
In all dieser Zeit ist für TFVC sehr wenig passiert:
- YAML-Pipelines müssen 2 Jahre nach ihrer Einführung noch TFVC-Unterstützung erhalten (ich erwarte das überhaupt nicht).
- Team Explorer heißt jetzt in Visual Studio „Legacy“.
- TFVC wurde für Feature Complete erklärt
- Die TFVC-Unterstützung für Eclipse und Visual Studio Code und Linux/Mac ist offiziell veraltet/endet.
Es ist ziemlich klar, wer gewonnen hat: Git.
Was sind die großen Unterschiede zwischen TFS und Git für die Quellcodeverwaltung bei Verwendung von VS 2013?
MSDN hat eine sehr umfangreiche Seite zu allen Features und Unterschieden zwischen Team Foundation Version Control und Git.
Ist der einzige Vorteil in meinem Fall ein lokales Repository (um nicht zu sagen, dass das unbedeutend ist) und IoS-Entwicklungsunterstützung?
Nein, es gibt noch viel mehr, aber es handelt sich oft um fortgeschrittene Git-Szenarien. Lokales Repo, Offline-Unterstützung und vollständige lokale Wiedergabetreue des Verlaufs sind unglaublich leistungsfähig, das ist mit Visual Studio sofort einsatzbereit. Es gibt noch ein paar andere tolle Features! Die Fähigkeit, von einem Repository zu einem anderen zu verzweigen und zusammenzuführen, ist sehr leistungsfähig. Ich empfehle Ihnen, nachzuschlagen Pro Git-Buch für diejenigen. Git in TFS ist nur ein weiterer Git-Server, er hat so ziemlich alle Funktionen, die das Standard-Git hat.
Die Möglichkeit, den Verlauf vor dem Zusammenführen neu zu schreiben, ermöglicht es Ihnen, eine Reihe kleinerer Änderungssätze zu entfernen oder zu kombinieren, sodass der Verlauf übersichtlicher und für Menschen leichter lesbar ist.
Der einzige Nachteil von Git ist die Befehlszeilenschnittstelle (einige würden argumentieren, dass dies kein Nachteil ist ;-P).
TFVC hat auch eine Befehlszeile, die Leute benutzen sie einfach nicht. Für Leute, die Git verwenden wollen und nie viel mehr tun als TFVC, müssen sie die Benutzeroberfläche wahrscheinlich nicht wirklich verlassen, sie werden jedoch nicht viele der coolen Funktionen erhalten …
Es könnte ein paar andere Nachteile geben, hauptsächlich aufgrund der Tatsache, dass es anders ist als das, was die Leute gewohnt sind. Es ist nicht allzu schwer, sich selbst ins Knie zu schießen, wenn Sie sich nicht die Zeit nehmen, zu lernen, was Git tut, wenn Sie Dinge tun. Dinge wie Rebase und Squash sind wirklich mächtig und erzeugen eine sehr saubere Historie, aber es kann Leute mit dem Problem zurücklassen, dass sie nicht mehr zusammenführen können, wenn sie falsch verwendet werden. TFS hat die Fähigkeit, einige Sicherheitseinstellungen festzulegen, um die Rechte zu entziehen, um sehr dumme Entscheidungen in einem Git-Repository zu treffen.
Ein sehr cooles Add-On für Git-Benutzer unter Windows ist PoSHGit. Es bietet eine automatische Befehlsvervollständigung in der Powershell-Befehlszeile.
Haben Sie Erfahrung mit der VS 2013 GUI für Git? Reicht das aus, um grundlegendes Verzweigen/Zusammenführen ohne die Befehlszeilenschnittstelle zu unterstützen?
Es hat alles, was Sie für grundlegende Operationen benötigen. Aber Sie müssen in der Lage sein, die verschiedenen Zweige zu visualisieren, um zu wissen, was vor sich geht. Da der Git-Server und das lokale Repo nur Git sind, kann Ihnen jeder Git-Client hier helfen. SourceTree ist hier eine Option. Der Git für Windows-Client ist ein weiterer.
Für Standardoperationen, Einchecken, Auschecken, Zusammenführen, Verzweigen (oder Pushen, Ziehen, Abrufen, Festschreiben, Zusammenführen) funktioniert die Benutzeroberfläche einwandfrei.
Gibt es eine detaillierte Startanleitung für Git, die zeigt, wie Git mit VS 2013 verwendet wird? MS hat ein Video zur Integration eines vorhandenen Git-Repos in VS 2013, aber ich suche einen Neuanfang mit Git und VS 2013?
Das Starten mit Git ist an mehreren Stellen verfügbar … Dies sind einige Optionen:
Andere gute Lektüre:
Und ein paar Tools, die es wert sind, installiert zu werden:
Um einige verwirrende gemischte Terminologie zu klären, die häufig verwendet wird TFS
Team Foundation-Server (TFS) ist ein Anwendungslebenszyklus-Management-Tool, das beinhaltet eine Quelle Versionskontrollsystem (VCS) Komponente.
Der VCS Komponente das TFS Verwendet Ist in erster Linie Team Foundation-Versionskontrolle (TFVC)
Die Frage wäre also TFVC vs Git
(In der Tat, TFS unterstützt Git Als ein VCS Möglichkeit.)
Die Frage ist also: TFVC vs. Git
jessehouwing hat eine großartige Antwort, die dies ausführlich behandelt, also beziehen Sie sich bitte darauf
Soweit die Auswahl, die ich meiner Meinung nach verwenden soll Git Gewinnt
- Es ist leicht: Einfach einzurichten und zu verwenden.
- Seine verteilte Natur bedeutet, dass es sehr widerstandsfähig gegenüber Katastrophen ist, jemand wird immer eine Kopie des Repos haben.
- Offline-Arbeit ist einfach, Sie arbeiten mit Ihrem eigenen vollständigen Repository. Sie können Änderungen übernehmen, wiederherstellen, den Verlauf durchsuchen usw. Sie müssen nur online sein, wenn Sie mit einem Remote-Repository synchronisieren möchten.
- In TFS gibt es keine einfache Möglichkeit, den Status Ihrer Änderungen (Dateihinzufügungen, -änderungen, -löschungen) zu speichern und zu einem anderen Codestatus zu wechseln. (Zum Beispiel, um an zwei Features zu arbeiten und hin und her zu wechseln). In Git checkst du einfach einen anderen Branch aus.
Der einzige Nachteil von Git ist die Befehlszeilenschnittstelle (einige würden argumentieren, dass dies kein Nachteil ist ;-P).
Wenn Sie sich mit der Befehlszeilenschnittstelle nicht auskennen, stehen für Git mehrere GUI-Frontends zur Verfügung. Git selbst enthält tatsächlich ein Repository-Browser-GUI-Tool namens gitk
und git-gui
– eine GUI für git. Dann gibt es Apps von Drittanbietern wie z Git-Cola, SchildkröteGit und Andere.
.