Ein GitHub Tutorial für Anfänger

Veröffentlicht von Lukas am

Wer schon einmal mit ioBroker gearbeitet hat, kommt früher oder später mit GitHub in Berührung. Sei es für Fehlermeldungen, neuen Code oder inoffizielle Adapter. In meinem GitHub Tutorial für Anfänger möchte ich dir gerne die Grundlagen von GitHub erklären, so dass du ein besseres Verständnis in der Nutzung dieses Tools hast. Dabei richtet sich dieser Artikel speziell an diejenigen, die mit GitHub noch keine oder kaum Berührungspunkte hatten. Wenn du hingegen schon ein fortgeschrittener Nutzer bist, dann wird dieser Artikel vielleicht nicht das liefern können, was du dir möglicherweise versprichst. Allerdings freue ich mich gerne über deine Ergänzungen in den Kommentaren zu diesem Artikel.

GitHub ist eine Plattform, die von Millionen von Entwicklern genutzt wird, um ihre Projekte zu hosten, gemeinsam daran zu arbeiten und den Code zu verwalten. Aber keine Sorge, wenn du noch keine Erfahrung damit hast – dieser Leitfaden ist speziell für Anfänger wie dich gemacht. Die Plattform wurde im April 2008 online gestellt und im Jahr 2018 von Microsoft übernommen. Anders als zuerst befürchtet, blieb GitHub für Entwickler dennoch ein Ort für Zusammenarbeit und Austausch.

Bereit, deinen Weg in die Welt von GitHub zu starten? Lass uns anfangen!

Einführung in GitHub

GitHub ist eine webbasierte Plattform, die es Entwicklern ermöglicht, ihre Projekte zu verwalten, Code zu hosten und mit anderen zusammenzuarbeiten. Es basiert auf dem Versionskontrollsystem Git und bietet eine Vielzahl von Funktionen, die die Entwicklung und Zusammenarbeit erleichtern. Git selbst ist eine freie Software zur Versionsverwaltung und wurde ursprünglich von Linus Torvalds ins Leben gerufen. Die Plattform GitHub liefert somit in erster Linie eine grafische Benutzeroberfläche und nutzt unter der Haube Git, um die Dateien zu verwalten. Der Fairness halber muss man allerdings erwähnen, dass GitHub darüber hinaus noch weit mehr Funktionen bietet, die im alltäglichen Leben eines Entwicklers durchaus bequem sein können. Und auch für den Aspekt der Community gibt es Funktionen, die nützlich sind.

Ein besonders interessanter Aspekt an Git ist die dezentrale Verwaltung von Code. Das bedeutet, dass es nicht einen Server gibt, der alles beinhaltet. Der Code kann viel mehr an unterschiedlichen Stellen gespeichert und verarbeitet werden. Der dezentrale Aspekt an Git macht das Tool sehr robust und hat sich in der Praxis meines Erachtens nach durchgesetzt. Neben Git gibt es jedoch noch weitere Möglichkeiten, seinen Code verwalten und versionieren zu können.

Um GitHub nutzen zu können, musst du zunächst ein Konto erstellen. Gehe einfach auf die GitHub-Website und klicke auf „Sign up“. Dort wirst du aufgefordert, einige Informationen einzugeben und ein Passwort für dein Konto festzulegen. Sobald du dein Konto erstellt hast, kannst du GitHub vollständig nutzen. Das Konto kannst du bei GitHub kostenlos anlegen. Damit unterliegst du zwar gewissen Einschränkungen, jedoch sind die für eine nicht professionelle Arbeit kaum von Relevanz. Ich würde mal behaupten, dass die meisten Entwickler (oder Nutzer) auf GitHub einen kostenlosen Account nutzen. Auch wenn ich hierfür aktuell keine Zahlen und Daten zur Hand habe.

Die GitHub Hauptseite
Die GitHub-Startseite mit Login und Registrierung oben rechts

Navigieren auf der GitHub-Oberfläche

Nachdem du dich bei GitHub registriert und angemeldet hast, wirst du zur Startseite weitergeleitet. Hier findest du eine Übersicht über deine Repositories, Aktivitäten und Benachrichtigungen. Die Hauptnavigationsleiste befindet sich oben auf der Seite und ermöglicht den Zugriff auf verschiedene Funktionen und Einstellungen.

Die Startseite zeigt dir auch Vorschläge für interessante Projekte und Personen, denen du folgen kannst. Du kannst die Suchleiste verwenden, um nach bestimmten Repositories, Benutzern oder Themen zu suchen. Je nachdem wie vielen Menschen und Projekten du folgst, desto voller wird deine Startseite. Sie ist ein wenig gestaltet wie in einem sozialen Netzwerk, wozu man GitHub auch schon fast zählen kann. Denn auf dieser Plattform läuft auch sehr viel Kommunikation zwischen Entwicklern und zum Teil auch mit Nutzern von Software. Wie genau das abläuft, werde ich dir gleich im weiteren Verlauf erklären.

Ebenfalls ein wichtiger Punkt ist dein eigenes Profil. Jedem Benutzer wird ein eigenes öffentliches Profil zur Verfügung gestellt, das man nach Belieben ausfüllen kann. Öffentliche Repositories sind genauso in deinem Profil sichtbar, wie zum Beispiel dein Name oder deine Biografie. Vorausgesetzt natürlich, dass du in deiner Biografie etwas eingetragen hast. Ansonsten bleibt die Stelle leer.

Anders als auf vielen anderen sozialen Netzwerken ist es bei GitHub übrigens nicht unüblich, dass man kein richtiges Foto von sich selbst einstellt. Zwar machen das einige Nutzer, was auch durchaus charmant sein kann, viele machen von dieser Möglichkeit allerdings keinen Gebrauch. So zumindest meine eigene Erfahrung. Und das ist auch an sich gar nicht schlimm, denn auf GitHub steht in der Tat der Code und die Entwicklung von Software im Vordergrund. Dafür ist die Plattform schließlich auch konzipiert.

GitHub Startseite nach der Anmeldung
Startseite von GitHub nach dem Login

Verstehen von Repositories und Branches

In GitHub werden Projekte in sogenannten Repositories organisiert. Ein Repository ist ein Speicherort für deinen Code, der alle Dateien, Ordner und Verlaufsinformationen enthält. Jedes Repository kann mehrere Branches haben, die verschiedene Versionen des Codes darstellen. Stark vereinfacht kannst du dir ein Repository wie einen Ordner vorstellen, in dem alle Informationen zu einem Projekt gespeichert sind. Fehler, Code, usw. In der Praxis ist das ganze Konstrukt natürlich weitaus komplexer, was nicht zuletzt auch an den Branches liegt. Doch was ist eigentlich ein Branch?

Vertiefe dein Wissen:  Smart City Pforzheim - Wieder eine Goldstadt?

Ein Branch ist eine eigenständige Entwicklungslinie, die von der Hauptversion des Codes abzweigt. Branches ermöglichen es Entwicklern, unabhängig voneinander an verschiedenen Funktionen oder Fehlerbehebungen zu arbeiten, ohne die Hauptversion des Codes zu beeinflussen. Stell dir einen Branch also wie eine Kopie deines Ordners vor, der einen eigenen Speicherstand zu deinem Projekt enthält und von einer anderen Person bearbeitet wird. Es gibt also mehrere Stränge in deinem Projekt, die gerade aktiv bearbeitet werden. Zu einem späteren Zeitpunkt werden die Stränge wieder zu einem großen Projekt zusammengeführt, was wir in der Fachsprache als Mergen bezeichnen. Dabei werden verschiedene Versionen von Dateien zusammengeführt, so dass die finale Datei entsteht. Auf GitHub wird diese Zusammenführung manchmal in einem wiederum eigenen Branch gemacht. Oft wird hierfür aber auch der sogenannte Master-Branch verwendet. In diesem Branch liegt in der Regel der aktuelle und finale Stand des Projekts, der entweder in Betrieb genommen oder weitergegeben werden kann.

Eine mögliche Aufteilung des Projekts kann zum Beispiel in zwei Branches gefasst werden: Master und Develop. Im Develop-Branch wird aktuell gearbeitet und es befindet sich dort der aktuellste Stand, der mitunter jedoch noch instabil sein kann. Erst wenn der Stand getestet und abgesegnet wurde, wandert er über das Mergen in den Master-Branch und ist schlussendlich fertig für die Produktion.

Um ein neues Repository zu erstellen, gehe zur Startseite von GitHub und klicke auf „New repository“. Gib einen Namen für das Repository ein, wähle optional eine Beschreibung und leg fest, ob das Repository öffentlich oder privat sein soll. Klicke dann auf „Create repository“, um das Repository zu erstellen. Ein öffentliches Repository kann von jeder Person eingesehen werden. Ein privates Repository hingegen siehst in erster Linie nur du. Mit entsprechenden Funktionen (die ggf. kostenpflichtig sind) kannst du dein privates Repository jedoch auch mit anderen Entwicklern teilen, so dass man gemeinsam daran arbeiten kann.

ioBroker Repository mit seinen verschiedenen Branches
ioBroker Repository mit verschiedenen Branches

Grundlegende Git-Befehle für Anfänger

Git ist – wie bereits erwähnt – das Versionskontrollsystem, auf dem GitHub basiert. Es ermöglicht Entwicklern, Änderungen am Code zu verfolgen, verschiedene Versionen zu verwalten und Zusammenarbeit zu erleichtern.

Hier sind einige grundlegende Git-Befehle, die du als Anfänger kennen solltest:

1. `git init`: Initialisiert ein neues Git-Repository in einem Verzeichnis.

2. `git clone [repository-url]`: Erstellt eine lokale Kopie eines Remote-Repositorys auf deinem Computer.

3. `git add [file]`: Fügt eine Datei zur Staging-Area hinzu.

4. `git commit -m „commit message“`: Erstellt einen neuen Commit mit den in der Staging-Area enthaltenen Änderungen und einer Commit-Beschreibung.

5. `git push`: Überträgt alle lokalen Commits auf das Remote-Repository.

Diese Befehle sind nur ein kleiner Ausschnitt aus dem umfangreichen Funktionsumfang von Git. Es gibt viele weitere Befehle und Funktionen, die du im Laufe deiner GitHub-Reise entdecken wirst. Aus meiner Sicht ist es auf jeden Fall sinnvoll, mit den grundlegenden Funktionen einzusteigen und sich basierend darauf immer tiefer in das System vorzuarbeiten. Denn Git kann durchaus komplex sein, was gerade Einsteiger abschrecken kann. Für die tägliche Arbeit reichen jedoch oft die grundlegenden Funktionen und alles Weitere ergibt sich im Verlauf. Nicht selten erklären innerhalb eines Unternehmens auch die erfahreneren Entwickler den Neulingen die Funktionen und weisen auf spezielle Vorgehensweisen hin, die im Unternehmen festgelegt wurden.

Zusammenarbeit auf GitHub

Eine der Hauptstärken von GitHub ist die Möglichkeit zur Zusammenarbeit mit anderen Entwicklern. Hier sind einige Funktionen, die dir dabei helfen:

Erstellen und Verwalten von Issues: Issues sind ein Weg, um Probleme, Funktionsanfragen oder Fehlerberichte zu verfolgen. Du kannst Issues erstellen, zuweisen, kommentieren und schließen. Sie sind ein effektives Mittel, um die Kommunikation zwischen Teammitgliedern zu erleichtern und den Fortschritt eines Projekts zu verfolgen. Im konkreten Beispiel von ioBroker werden sie genutzt, um Fehlerberichte von Nutzern entgegenzunehmen. Auf Basis dieser Fehlerberichte kann dann entweder eine Diskussion ausgelöst oder eine konkrete Aufgabe abgeleitet werden. Issues dienen in erster Linie dazu, direkt mit den Entwicklern einer Software in Kontakt zu treten und auf ein Problem aufmerksam zu machen. Dabei sollte man sich immer an der vorgegebenen Struktur orientieren und so viele Informationen wie möglich bereit halten, um ein konkretes Szenario nachzuspielen und den Fehler schnell zu finden.

Um ein neues Issue zu erstellen, gehe zum Repository, klicke auf „Issues“ und dann auf „New issue“. Gib einen aussagekräftigen Titel und eine detaillierte Beschreibung des Problems ein. Du kannst Labels und Meilensteine hinzufügen, um das Issue weiter zu klassifizieren. Oft genügt es jedoch schon, die entsprechenden Informationen zu übermitteln. Der weitere Workflow wird dann von den Entwicklern übernommen, die für sich oft eine konkrete Struktur zum Umgang mit Issues haben.

Vertiefe dein Wissen:  Stream Deck Alternativen

Forking und Teilnahme an Open-Source-Projekten: GitHub ist auch die Heimat einer großen Anzahl von Open-Source-Projekten. Du kannst ein Repository „forken“, um eine persönliche Kopie des Codes zu erstellen und Änderungen vorzunehmen. Nachdem du deine Änderungen vorgenommen hast, kannst du einen „Pull Request“ senden, um deine Änderungen dem ursprünglichen Repository vorzuschlagen. Ein Fork ist dabei eine eigene Kopie des Repositories in deinem eigenen Space. Das bedeutet, dass in deinen eigenen Repositories der neue Fork auftaucht und du an diesem Stand arbeiten kannst. Es ist unüblich und oft auch nicht möglich, dass du das „Haupt-Repository“ direkt bearbeitest und so deine Änderungen einbringst. Dies geschieht über den eben erwähnten Pull-Request. Dabei stellst du eine Anfrage, um eigene Änderungen in die Software einzubringen. In der Regel sehen sich die Entwickler einer Software daraufhin alle deine Änderungen an und geben entweder grünes Licht oder verlangen Änderungen. Dieser Prozess kann zum Teil ziemlich lange werden und du solltest daher etwas Geduld mitbringen. Es ist außerdem wichtig, sich an Standards der Entwickler zu halten, um eine einheitliche Struktur für das Projekt beizubehalten.

Das Forken und die Teilnahme an Open-Source-Projekten sind großartige Möglichkeiten, um deine Fähigkeiten zu verbessern, mit anderen Entwicklern zusammenzuarbeiten und zur Open-Source-Community beizutragen. Viele Entwickler entscheiden sich in ihrer Freizeit dazu, an solchen Projekten mitzuwirken und ihr wissen einzubringen. Auf diese Weise entsteht oft eine sehr robuste Software, die viele unterschiedliche Erfahrungen und Erwartungen berücksichtigt.

Issues auf GitHub verwalten
Issues am Beispiel von ioBroker

Erstellen und Verwalten von Issues

Abschließend möchte ich dir einige Best Practices und Tipps für die Verwendung von GitHub geben:

1. Nutze aussagekräftige Commit-Beschreibungen, um Änderungen nachvollziehbar zu machen. Auf keinen Fall sollte deine Commit-Beschreibung nur einen Text wie „Änderungen“ oder „Bugfixes“ beinhalten. Man soll auf den ersten Blick erkennen können, woran du gearbeitet und was du genau getan hast.

2. Verwende Branches, um an neuen Funktionen oder Fehlerbehebungen zu arbeiten, ohne die Hauptversion des Codes zu beeinflussen. Damit stellst du mitunter eine gewisse Qualität sicher und gefährdest nicht den funktionsfähigen Code. Es ist so auch leichter, Änderungen nochmals zu bearbeiten und Fehler zu korrigieren, bevor sie in eine produktive Umgebung gelangen. Du nimmst dir also selbst den Druck raus.

3. Nutze Issues, um Probleme zu verfolgen und die Kommunikation mit anderen Entwicklern zu erleichtern. Beachte jedoch auch hier den ersten Tipp. Je aussagekräftiger dein Issue ist, desto hilfreicher kann es auch sein. Wer lediglich ein Issue anlegt und sagt, dass es einen Fehler gibt, darf keine Unterstützung erwarten.

4. Dokumentiere deinen Code, damit andere Entwickler ihn leichter verstehen und verwenden können. Das ist wohl einer der wichtigsten Punkte. Denn wo mehrere Entwickler zusammenarbeiten, muss auch die eine oder andere Erklärung einfließen. Das macht es einfacher, sich in fremden Code hinein zu denken und ihn weiter zu bearbeiten.

5. Arbeite regelmäßig an deinen Projekten, um den Code aktuell zu halten und Fortschritte zu verfolgen.

Fazit

GitHub ist eine sehr lebendige Plattform, auf der viele Experten und auch Anfänger unterwegs sind. Besonders hilfreich finde ich die Plattform, um von anderen zu lernen. Das bedeutet, dass ich von erfahreneren Entwicklern einige Dinge abschauen und selbst umsetzen kann. Auch der Austausch innerhalb eines Issues oder eines Pull Requests hilft mir persönlich dabei, bessere Skills zu entwickeln und mein Augenmerk auf die richtigen Stellen zu legen.

Wo jedoch so viel Expertenwissen vereint wird, kommt es nicht selten auch zu Meinungsverschiedenheiten. Dabei ist es besonders wichtig, dass es sich um einen fachlichen Austausch handeln sollte. Jede Kritik persönlich zu nehmen ist wie in vielen anderen Bereichen auch hier ziemlich gefährlich und kann zu Konflikten führen. Daher solltest du dir immer vor Augen führen, dass besonders erfahrene Entwickler immer den Code und die Software im Blick haben. Es geht nicht um das eigene Ego oder die eigenen Fähigkeiten, sondern immer nur um das Beste für das Produkt. Wenn die Kritik also auch mal harsch ausfällt, so sieh darüber hinweg und überlege dir, was du beim nächsten Mal besser machen kannst.

Wenn du selbst eine Karriere als Entwickler anstrebst, so kann ich dir nur raten, dich frühzeitig mit Git und GitHub zu beschäftigen. In der Praxis ist insbesondere Git ein Tool, um das du wohl kaum herum kommen wirst. Denn die heutigen Anwendungen sind derart komplex, dass die richtigen Tools vorhanden sein müssen, um den Code effizient zu verwalten. Und wenn du dann auf die Suche nach einem Job gehst, kannst du gerade als Einsteiger punkten, wenn du bereits erste Erfahrungen mit Git gemacht hast.

Jetzt, da du die Grundlagen von GitHub kennst und weißt, wie wertvoll diese Plattform für Entwickler sein kann, ist es an der Zeit, deine Erfahrungen zu schildern. Hast du besondere Erfahrungen oder Erkenntnisse, die du gerne mit uns teilen möchtest?


Avatar-Foto

Lukas

Als Softwareentwickler und Projektmanager mit einem Master of Science in Wirtschaftsinformatik weiß ich genau, wie die Dinge in der IT zu funktionieren haben. In meinem Blog kombiniere ich seit mehr als 7 Jahren mein Wissen mit meiner Neugier im Bereich Smart Home. Transparenz und Praxisnähe stehen für mich dabei im Vordergrund. Mein Fokus liegt vor allem auf der Software ioBroker, da ich mein eigenes Smart Home damit betreibe. Meine Beiträge basieren somit nicht nur auf theoretischem Know-how, sondern auch auf praktischen Erfahrungen aus meinem vernetzten Zuhause. Mein persönliches Ziel ist es, dir Einblicke in das Smart Home zu geben, die dich wirklich voranbringen.

0 Kommentare

Schreibe einen Kommentar

Avatar-Platzhalter

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert