Untersuchen und Auswählen von Git

Abgeschlossen

Der Umstieg von einem zentralisierten Versionskontrollsystem zu Git ändert die Art und Weise, wie Ihr Entwicklungsteam Software erstellt.

Wenn Ihr Unternehmen bei unternehmenskritischen Anwendungen auf seine Software vertraut, wirkt sich die Änderung Ihres Entwicklungsworkflows auf Ihr gesamtes Unternehmen aus.

Entwickler*innen profitieren bei einem Umstieg auf Git von den folgenden Vorteilen:

Community

In vielen Kreisen wird Git als Versionskontrollsystem für neue Projekte vorausgesetzt.

Wenn Ihr Team Git verwendet, müssen Sie bei Neueinstellungen möglicherweise nicht einmal Schulungen für Ihren Workflow durchführen, da neue Mitarbeiter*innen bereits mit der verteilten Entwicklung vertraut sind.

Git community.

Außerdem ist Git besonders bei Open-Source-Projekten beliebt. Es ist einfach, Bibliotheken von Drittanbietern zu verwenden und andere zu ermutigen, Ihren Open-Source-Code zu forken.

Verteilte Entwicklung

In TFVC erhalten alle Entwickler*innen eine Arbeitskopie, die auf ein einzelnes zentrales Repository verweist. Git ist hingegen ein verteiltes Versionskontrollsystem. Anstelle einer Arbeitskopie erhalten alle Entwickler*innen ein eigenes lokales Repository mit dem gesamten Commitverlauf.

Centralized and Distributed version control systems.

Ein vollständiger lokaler Verlauf macht Git schneller, da Sie keine Netzwerkverbindung benötigen, um Commits zu erstellen, frühere Versionen einer Datei zu überprüfen oder Vergleiche zwischen Commits durchzuführen.

Die verteilte Entwicklung vereinfacht auch die Skalierung Ihres Entwicklungsteams. Wenn in SVN jemand den Produktionsbranch beschädigt, können andere Entwickler*innen ihre Änderungen erst einchecken, wenn der Fehler behoben wurde. Bei Git gibt es diese Art der Blockierung nicht. Alle können ihre Arbeit in ihren lokalen Repositorys fortsetzen.

Und wie bei Featurebranches sorgt auch hier die verteilte Entwicklung für mehr Zuverlässigkeit. Selbst wenn Entwickler*innen ihr Repository löschen, können sie das einer anderen Person klonen und neu beginnen.

Trunkbasierte Entwicklung

Einer der wichtigsten Vorteile von Git sind die Verzweigungsfunktionen. Im Gegensatz zu zentralisierten Versionskontrollsystemen sind Git-Verzweigungen kostengünstig und einfach zu mergen.

Trunk-based Development.

Die trunkbasierte Entwicklung bietet eine isolierte Umgebung für jede Änderung an Ihrer Codebasis. Wenn Entwickler*innen mit der Arbeit an etwas beginnen möchten – unabhängig davon, wie groß oder klein – erstellen sie eine neue Verzweigung (einen Branch). Dadurch wird sichergestellt, dass der Hauptbranch immer Code in Produktionsqualität enthält.

Die trunkbasierte Entwicklung ist zuverlässiger als die direkte Bearbeitung von Produktionscode und bietet darüber hinaus organisatorische Vorteile.

Sie können die Entwicklung mit der gleichen Granularität wie Ihr agiles Backlog darstellen.

Beispielsweise können Sie eine Richtlinie implementieren, nach der jedes Arbeitselement in seinem Featurebranch adressiert wird.

Pull Requests

Viele Quellcodeverwaltungstools wie Azure Repos verbessern die Git-Kernfunktionalität noch mit Pull Requests.

Ein Pull Request ist eine Möglichkeit, andere Entwickler*innen zu bitten, einen Ihrer Branches in ihrem Repository zu mergen.

Dadurch können Projektleiter*innen Änderungen einfacher nachverfolgen, und Entwickler*innen können über ihre Arbeit diskutieren, bevor sie sie in die Codebasis integrieren.

Pull Requests.

Da es sich im Wesentlichen um einen Kommentarthread handelt, der an einen Featurebranch angefügt ist, sind Pull Requests äußerst vielseitig.

Wenn Entwickler*innen bei einem komplexen Problem nicht weiter kommen, können sie einen Pull Request erstellen, um Hilfe vom restlichen Team zu erfragen.

Indem sie Pull Requests als formale Codeüberprüfung behandeln können noch nicht so erfahrene Entwickler*innen sicher sein, dass sie nicht das gesamte Projekt zerstören.

Schnellerer Releasezyklus

Ein schnellerer Releasezyklus ist das endgültige Ergebnis von Featurebranches, verteilter Entwicklung, Pull Requests und einer stabilen Community.

Diese Funktionen fördern einen agilen Workflow, bei dem Entwickler*innen empfohlen wird, häufiger auch kleinere Änderungen freizugeben.

Änderungen können wiederum schneller in die Bereitstellungspipeline aufgenommen werden als beim Standard mit monolithischen Releases und zentralisierten Versionskontrollsystemen.

Product release with feedback.

Sie konnten sich sicherlich bereits denken, dass Git gut in Continuous Integration- und Continuous Delivery-Umgebungen funktioniert.

Mit Git-Hooks können Sie Skripts ausführen, wenn bestimmte Ereignisse innerhalb eines Repositorys auftreten, und so die Bereitstellung Ihrer Inhalte automatisieren.

Sie können sogar Code aus bestimmten Branches auf verschiedenen Servern erstellen oder bereitstellen.

Beispielsweise können Sie Git so konfigurieren, dass der letzte Commit aus dem Entwicklungsbranch immer dann auf einem Testserver bereitgestellt wird, wenn ein Pull Request damit zusammengeführt wird.

Wenn Sie diese Form der Buildautomatisierung mit Peer Reviews kombinieren, können Sie absolut sicher sein, dass Ihr Code von der Entwicklung über das Staging bis in die Produktion alle Qualitätsanforderungen erfüllt.