Definition „Git SCM“

Was ist Git?

| Autor / Redakteur: chrissikraus / Stephan Augsten

Git bietet unter anderem die Möglichkeit, ein Projekt in unterschiedliche Zweige oder Branches bzw. Forks aufzuteilen.
Git bietet unter anderem die Möglichkeit, ein Projekt in unterschiedliche Zweige oder Branches bzw. Forks aufzuteilen. (© dekzer007 - stock.adobe.com)

Git ist ein weit verbreitetes Open-Source-Tool zur verteilten Versionskontrolle von Software. Es wird sowohl in Unternehmen als auch von privaten Entwicklern weltweit genutzt und funktioniert zusammen mit verschiedensten Plattformen und IDEs.

Git ist ein kostenloses, verteiltes Versionskontrollsystem für Softwareprojekte, das in seiner ersten Version 2005 veröffentlicht wurde. Das Programm ermöglicht es mehreren Entwicklern, unabhängig von ihrem Aufenthaltsort gleichzeitig an einem Projekt zu arbeiten.

Die Versionskontrolle macht es einfach, Änderungen eigenständig und von überall aus dem Projekt hinzuzufügen, diese Änderungen zu protokollieren und nachzuvollziehen sowie zu einem späteren Zeitpunkt auf ältere Stände des Projekts zuzugreifen. Git ist plattformunabhängig und lässt sich somit in nahezu jeder Umgebung nutzen.

Dezentrale Verwaltung mit Git-Repository

Wo andere Systeme zur Versionskontrolle auf eine zentral gespeicherte Datenbank setzen, vertraut Git auf ein verteiltes System. Das bedeutet, dass jedes Mitglied eines Projektteams eine Art eigene Kopie der Projektdatenbank besitzt – das Repository. Theoretisch ist es mit Git möglich, ganz ohne eine zentrale Datenbank zu arbeiten.

Entwickler programmieren überwiegend an ihrer lokalen Kopie des Repositorys und haben die Möglichkeit, Ihre Änderungen mit allen Beteiligten auszutauschen. Außerdem verringert sich durch das Verteilen des Repositorys die Gefahr, dass Daten verloren gehen: Da viele Personen zugleich die vollständige Historie und den aktuellen Stand des Projekts als lokale Kopie besitzen, kann durch einen Serverausfall praktisch kein Schaden entstehen.

Dennoch gibt es die Option, eine zentrale Anlaufstelle einzurichten („Blessed Repository“), die von autorisierten Teammitgliedern gepflegt wird und dem Team z. B. als offizielle Referenz dient. Jeder, der am Projekt arbeiten möchte, holt sich eine Kopie dieser Version. Änderungen werden anschließend nicht allgemein verteilt, sondern an das zuständige Teammitglied zur Prüfung und Integration weitergeben.

Aufteilen und Zusammenführen unterschiedlicher Entwicklungsstände

Git bietet auch die Möglichkeit, ein Projekt in unterschiedliche Zweige oder Branches bzw. Forks aufzuteilen, um z. B. Versionen zu trennen und neue oder experimentelle Features parallel zum Hauptzweig zu entwickeln. Änderungen, die für den Endnutzer veröffentlicht werden sollen, können anschließend wieder mit der entsprechenden Projektversion zusammengeführt werden.

Git ist darauf ausgelegt, dass Teams regelmäßig Branches und Merges nutzen, um eine gut nachvollziehbare Historie des Projekts aufzubauen. Git verfügt über interne Tools, welche die Branches und Merges eines Projekts visualisieren können – so erhält jedes Teammitglied einen nachvollziehbaren Überblick über die Entwicklung des Projekts.

GitHub: Web-Interface für Git-Projekte

Git an sich ist nur ein System, um die Versionierung von Software zu steuern. Es gibt auf dem Mark verschiedenste Tools, die Git als Basis nutzen und eine Reihe von Komfortfunktionen hinzufügen, um die Verwaltung von Projekten bequemer und zugänglicher zu machen. Ein Beispiel hierfür ist die webbasierte Plattform GitHub.

Die Webanwendung macht die Inhalte von Git-Repositories transparent und online verfügbar. So wird es einfach, Änderungen und Branches mit Teammitgliedern und Nutzern auf der ganzen Welt zu teilen. Die Plattform bereitet den Entwicklungsfortschritt eines Projekts zudem grafisch und in Statistiken auf, bietet die einfache Nachverfolgung von Abhängigkeiten und gibt dem Team die Möglichkeit, ein eigenes Wiki für die Community einzurichten.

Kommentare werden geladen....

Kommentar zu diesem Artikel

Der Kommentar wird durch einen Redakteur geprüft und in Kürze freigeschaltet.

Anonym mitdiskutieren oder einloggen Anmelden

Avatar
Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
  1. Avatar
    Avatar
    Bearbeitet von am
    Bearbeitet von am
    1. Avatar
      Avatar
      Bearbeitet von am
      Bearbeitet von am

Kommentare werden geladen....

Kommentar melden

Melden Sie diesen Kommentar, wenn dieser nicht den Richtlinien entspricht.

Kommentar Freigeben

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Freigabe entfernen

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Aktuelle Beiträge zu diesem Thema

Git in Vim einbinden und nutzen

Integration von Code-Editor und Source Code Management

Git in Vim einbinden und nutzen

Es gibt Dutzende guter Code-Editoren, aber mit Ausnahme von Emacs ist kaum einer so etabliert wie Vim. Auch Git ist allgegenwärtig und da lohnt es sich, Vim ein wenig zu pimpen. Mit ein paar Basics und einigen Plug-ins wie Vim-Fugitive bekommen Sie Ihre persönliche IDE. lesen

AWS Toolkit für Visual Studio einrichten

ASP.NET-Apps auf AWS Elastic Beanstalk migrieren, Teil 2

AWS Toolkit für Visual Studio einrichten

Elastic Beanstalk bietet eine komplett von AWS verwaltete .NET-Plattform für das Deployment sowie die Skalierung und Aktualisierung von Anwendungen. Wie man das AWS Toolkit für Visual Studio einrichtet, zeigen wir im zweiten Teil dieser Serie. lesen

7 Open Source Tools für Developer

Entwickeln, Berichte erstellen und Daten abfragen

7 Open Source Tools für Developer

Open-Source-Tools bieten in der Entwicklung einige Vorteile. Für die Developer Community sind sie in der Regel kostenlos, ihr Code ist frei zugänglich und neue Versionen erscheinen in kurzem Zeitabstand. lesen

Visual Studio mit AWS CodeCommit nutzen

ASP.NET-Apps auf AWS Elastic Beanstalk migrieren, Teil 1

Visual Studio mit AWS CodeCommit nutzen

Elastic Beanstalk bietet eine komplett von AWS verwaltete .NET-Plattform für Deployment, Skalierung und Aktualisierung von Anwendungen. Wir beschreiben in einem vierteiligen Workshop, wie man die zugrunde liegende DevOps-Pipeline komplett auf AWS betreiben kann. lesen

Web-API-Applikation mit Aurora integrieren

Dotnet-Web-API auf Amazon Aurora, Teil 2

Web-API-Applikation mit Aurora integrieren

Die Grundlagen dafür, eine auf Microsoft .NET Core basierende Web-API-Anwendung mit AWS-Diensten und Amazon Aurora zu integrieren, haben wir gelegt. An einem AWS-Demoprojekt spielen wir nun die vollständige Konfiguration und Bereitstellung durch. lesen

Cloud-native Entwicklung mit neuen Tools

Red Hat CodeReady Workspaces 2

Cloud-native Entwicklung mit neuen Tools

Red Hat CodeReady Workspaces 2 bietet neue Funktionen wie Air-Gap-Installationen, Unterstützung für Visual-Studio-Code-Erweiterungen und einer aktualisierten Benutzeroberfläche. lesen

GitHub Pages in Verbindung mit Jekyll

Freier Webspace für Entwickler

GitHub Pages in Verbindung mit Jekyll

Ein Projekt auf GitHub zu hosten, gehört heute zum Standard für Open-Source-Entwickler. Doch ein Repository allein genügt nicht, wenn das Projekt auch vorgestellt und verbreitet werden soll. Hier kommt Pages als kostenloser Webspace ins Spiel. lesen

Cloud-native Alternativen zu Jenkins

Consol testet moderne CI- und CD-Tools

Cloud-native Alternativen zu Jenkins

Beim Cloud-native Development stoßen gängige Continuous-Integration- und -Delivery-Tools an ihre Grenzen. Auf Microservice-Architekturen sind diese Werkzeuge schlicht nicht ausgerichtet, meint das Consulting-Unternehmen Consol, das einige Alternativen identifiziert hat. lesen

DevOps für Salesforce-Umgebungen

Prozessoptimierung im Cloud CRM

DevOps für Salesforce-Umgebungen

Bei der Entwicklung und dem Betrieb für Salesforce werden Unternehmen vor verschiedene Herausforderungen gestellt. Welche Herausforderungen das sind und wie DevOps bei der Optimierung des Software-Lifecycles unterstützen kann, werde ich in diesem Fachartikel erläutern. lesen

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Kontaktieren Sie uns über: support.vogel.de/ (ID: 46052454 / Definitionen)