Entwicklertool: GitHub – Versionskontrolle und Social Coding

Ob Programmierer, WordPress-Nutzer oder Webdesigner – GitHub spielt eine wichtige Rolle in der digitalen Infrastruktur.

Warum die Entwicklerplattform die Heimat des Codes in der Cloud geworden ist und wie die Plattform die Softwareentwicklung vorantreibt.

Was ist GitHub?

GitHub ist eine Website und ein cloud-basierter Dienst, der es Entwicklern ermöglicht, ihren Code zu speichern, zu verwalten und auszutauschen, sowie die Änderungen daran zu kontrollieren. Ähnliche Dienste sind GitLab, Bitbucket und Gitee.

Um zu verstehen, was GitHub genau ist, stellen wir zunächst zwei grundlegende Prinzipien vor. Diese Prinzipien sind:

      1. die Versionskontrolle
      2. das Git

Wir erklären hier zunächst die Grundlagen und werden uns danach näher mit GitHub selbst beschäftigen.

von Amer Ghazal und Baraa AlFarkh

GitHub homepage network-based version management service for software projects
GitHub-Homepage: Von dort aus können Entwickler ihre Projekte in den netzbasierten Dienst zur Versionsverwaltung für ihre Softwareprojekte einstellen

Zuerst, was ist die Versionskontrolle?

Die Methode zur Aufzeichnung und Kontrolle von Änderungen am Softwarecode ist als Versionskontrolle bekannt, die manchmal auch als Quellenkontrolle (source control system) bezeichnet wird. Versionskontrollsysteme (VCS) sind Softwaretools, die Softwareentwicklungsteams bei der Verwaltung von Quellcodeänderungen im Zeitablauf unterstützen. Außerdem helfen Versionskontrollsysteme Softwareteams dabei, schneller und intelligenter zu arbeiten, da die Entwicklungsumgebungen immer größer geworden sind. Sie sind für DevOps-Teams äußerst vorteilhaft, da sie dazu beitragen, die Entwicklungszeit zu verkürzen und die Bereitstellung (Deployment) zu optimieren.

In einer speziellen Datenbank verfolgt die Versionskontrollsoftware jede Änderung des Codes. Wenn ein Fehler auftritt, können die Entwickler auf frühere Versionen zugreifen und verschiedene Versionen des Codes vergleichen, um die Korrektur eines Fehlers während der Migration zu vereinfachen.

Was sind Branching and Merging?
Ein Branch repräsentiert eine unabhängige Entwicklungslinie. Durch Branching können Entwickler einen Teil des Quellcodes (Repository genannt) duplizieren. Dann können sie gefahrlos Änderungen an diesem Teil vornehmen, ohne den Rest des Projekts zu beeinträchtigen.
Sobald der Code einwandfrei funktioniert, kann dieser wieder in den Hauptquellcode eingefügt werden (Merging).

Vorteile durch die Versionskontrolle

1. Erstellung von Backups
Jedes Mal, wenn eine Entwicklerin ein Repository klont, erstellt sie ein Backup der aktuellen Version des Repositorys. Dies ist vielleicht der wichtigste Vorteil der Verwendung eines Versionskontrollsystems. Zahlreiche Sicherungskopien auf verschiedenen Rechnern zu haben, ist ein Vorteil, denn es schützt vor Datenverlusten im Falle eines Serverausfalls.

2. Experiment und Test

Heute befindet sich jeder Quellcode ständig in der Entwicklung. Es müssen laufend neue Funktionen hinzugefügt, neue Zielgruppen angesprochen und neue Anwendungen entwickelt werden.

Wenn ein Team an einem Softwareprojekt arbeitet, verwendet es häufig Klone des Hauptprojekts, um neue Funktionen zu erstellen, sie zu testen und sicherzustellen, dass sie ordnungsgemäß funktionieren, bevor sie dem Hauptprojekt hinzugefügt werden. Dieser Ansatz spart Zeit, da verschiedene Bereiche des Codes gleichzeitig entwickelt werden können.

Repository Page: Hier können Projektdateien und Quellcode durchgesehen werden und auch die Änderungshistorie ist für jedes Projekt dokumentiert

3. Aktivitäten und Veränderungen festhalten

Wenn im Laufe der Zeit das Hinzufügen einer bestimmten Funktion Schwierigkeiten bei der Skalierung oder Weiterentwicklung des Projekts verursacht, ermöglicht die Versionskontrolle den Entwicklern, diese Funktion zu verfolgen und sie zu aktualisieren oder zu löschen, ohne den Betrieb des Projekts zu beeinträchtigen.

4. Beitragen und Zusammenarbeiten
Einer der wichtigsten Vorteile von Versionskontrollsystemen, insbesondere des dezentralen Versionskontrollsystems (Distributed Version Control System, DVCS), besteht darin, dass es uns ermöglicht, an Projekten zu partizipieren, die uns gefallen, obwohl wir uns in verschiedenen Ländern befinden. Wir glauben, dass die Existenz von DVCS einer der wichtigsten Faktoren für den anhaltenden Erfolg der Open-Source-Technologie ist.

Und dann … Was ist Git?

Git ist ein quelloffenes Versionskontrollsystem, das von Entwicklern auf der ganzen Welt verwendet wird. Das bedeutet, dass jeder Computer eines Entwicklers Zugriff auf die gesamte Codebasis und die Historie hat, was ein einfaches Verzweigen (Branching) und Zusammenführen (Merging) ermöglicht.

Projekt-Übersichtsseite: Hier werden Projekte (Repositories) aufgelistet und jedes Projekt mit kurzen Informationen zusammengefasst, wie zum Beispiel die verwendete Programmiersprache, …

… und GitHub?

GitHub ist das Tool, das die Zusammenarbeit und das Projektmanagement in der Computerprogrammierung vereint und anders als Git ist es keine Open-Source-Plattform, sondern wird als proprietäres Netzwerk von Microsoft betrieben.

Es macht es für Einzelpersonen und Teams viel einfacher, Git für die Versionskontrolle und Zusammenarbeit zu nutzen. Die Plattform wurde entwickelt, um Programmierprojekte mit anderen zu teilen und bei der Verwaltung dieser Projekte zu helfen, während andere auch zum Quellcode beitragen können. GitHub ist nützlich, wenn mehrere Personen an derselben Codebasis arbeiten und sie die Beiträge jedes Einzelnen zum Projekt verfolgen und überprüfen möchten.

GitHub erstellt öffentliche Repositorys für hochgeladene Projekte. Das bedeutet, dass alle auch alle anderen Zugang zum Projekt-Quellcode haben. Die kostenlose Anmeldung für das Hosten öffentlicher Code-Repositorys macht GitHub besonders für Open-Source-Projekte beliebt.

LINKS

› Eine gute Ressource, um mehr über Git und Versionskontrolle zu erfahren: Become a git guru.

› Softwareentwicklung mit L-One: Effizienz integrieren

› E-Book: Digitale Ideen zum Erfolg führen – Sourcing, Hacks und Förderprogramme

News & Updates

Ja, haltet mich auf dem Laufenden über aktuelle Entwicklungen bei L-One und wie ich digitale Projekte zum Erfolg führen kann.

Video L-One Systems Interview with Lionel Born & Feras Tanan
Wie Software-Entwicklung mit L-One abläuft in 2 Minuten: Lionel Born und Feras Tanan geben Antworten.