{"id":6491,"date":"2026-07-13T06:44:13","date_gmt":"2026-07-13T06:44:13","guid":{"rendered":"https:\/\/technodidact.de\/?p=6491"},"modified":"2026-07-13T06:44:14","modified_gmt":"2026-07-13T06:44:14","slug":"git-und-github-die-digitale-werkbank-der-modernen-softwareentwicklung","status":"publish","type":"post","link":"https:\/\/technodidact.de\/en\/git-und-github-die-digitale-werkbank-der-modernen-softwareentwicklung\/","title":{"rendered":"Git und GitHub: Die digitale Werkbank der modernen Softwareentwicklung"},"content":{"rendered":"<p class=\"wp-block-paragraph\"><strong>Autor: DerSchneider<\/strong><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Einleitung<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Stellen Sie sich vor, Sie arbeiten in einem Team an einer Android-App. Nach einem Monat intensiver Entwicklung stellt der Kunde fest: Die alte Version sah besser aus. Doch die alte Version ist weg \u2013 der Quellcode wurde \u00fcberschrieben, die alten Dateien gel\u00f6scht. Ein Albtraum, der in der Softwareentwicklung vor der \u00c4ra moderner Versionskontrollsysteme erschreckend h\u00e4ufig Realit\u00e4t war.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dieses Szenario illustriert das Kernproblem, das Git seit 2005 f\u00fcr Millionen von Entwicklerinnen und Entwicklern weltweit l\u00f6st. Was als Notl\u00f6sung eines genervten Kernel-Entwicklers begann, ist heute das unangefochtene Standardwerkzeug der Branche. Laut der Stack Overflow Developer Survey 2022 nutzen&nbsp;<strong>96 % aller professionellen Entwickler<\/strong>&nbsp;Git in ihrem Arbeitsalltag. Keine andere Technologie ist unter Entwicklern derart fl\u00e4chendeckend verbreitet.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dieser Artikel beleuchtet Git und GitHub nicht nur als technische Werkzeuge, sondern als kulturelles Ph\u00e4nomen, das die Art und Weise, wie wir gemeinsam Software entwickeln, grundlegend ver\u00e4ndert hat. Von den historischen Wurzeln \u00fcber die praktische Anwendung bis hin zur Bedeutung f\u00fcr die Open-Source-Community \u2013 wir tauchen tief ein in die Welt der Versionskontrolle.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">1. Was ist Versionskontrolle \u2013 und warum brauchen wir sie?<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">1.1 Das fundamentale Problem<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Jeder kennt das Ph\u00e4nomen: Die Hausarbeit, die als&nbsp;<code>Report.docx<\/code>&nbsp;beginnt, \u00fcber&nbsp;<code>Report_Final.docx<\/code>&nbsp;und&nbsp;<code>Report_Final_V2.docx<\/code>&nbsp;schlie\u00dflich bei&nbsp;<code>Report_Final_ENDGULTIG.docx<\/code>&nbsp;landet. Was im privaten Bereich noch kurios wirkt, wird in der professionellen Softwareentwicklung zur existenziellen Gefahr.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Versionskontrollsysteme l\u00f6sen dieses Problem systematisch. Sie sind Software, die es erlaubt, den&nbsp;<strong>vollst\u00e4ndigen Verlauf aller \u00c4nderungen<\/strong>&nbsp;an Dateien nachzuverfolgen \u2013 und bei Bedarf zu jedem beliebigen Zeitpunkt in der Geschichte eines Projekts zur\u00fcckzukehren.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1.2 Zentralisierte vs. verteilte Systeme<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Es gibt zwei grundlegende Architekturen von Versionskontrollsystemen:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th class=\"has-text-align-left\" data-align=\"left\">Merkmal<\/th><th class=\"has-text-align-left\" data-align=\"left\">Zentralisiert (CVCS)<\/th><th class=\"has-text-align-left\" data-align=\"left\">Verteilt (DVCS)<\/th><\/tr><\/thead><tbody><tr><td>Speicherort<\/td><td>Ein zentraler Server<\/td><td>Jeder Client hat vollst\u00e4ndige Kopie<\/td><\/tr><tr><td>Internetabh\u00e4ngigkeit<\/td><td>Ja, f\u00fcr fast alle Operationen<\/td><td>Nein, lokal arbeiten m\u00f6glich<\/td><\/tr><tr><td>Single Point of Failure<\/td><td>Ja<\/td><td>Nein<\/td><\/tr><tr><td>Beispiel<\/td><td>Subversion (SVN), CVS<\/td><td><strong>Git<\/strong>, Mercurial<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Ein zentralisiertes System wie SVN speichert alle \u00c4nderungen an einem zentralen Ort \u2013 vergleichbar mit einer Google Docs-Datei, auf die alle gleichzeitig zugreifen. Der Nachteil: Ohne Internetverbindung kann nicht gearbeitet werden.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ein verteiltes System wie Git speichert hingegen die&nbsp;<strong>gesamte Versionsgeschichte<\/strong>&nbsp;lokal auf jedem Rechner. Entwicklerinnen k\u00f6nnen \u00c4nderungen testen, Commits durchf\u00fchren und bei Bedarf mit anderen synchronisieren. Es gibt keinen zentralen Single Point of Failure \u2013 f\u00e4llt der Server aus, arbeitet jeder einfach lokal weiter.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1.3 Die drei Ebenen von Git<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Git arbeitet mit drei sogenannten &#8222;Areas&#8220;:<\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li><strong>Working Directory<\/strong>: Die lokale Kopie der Dateien auf der Festplatte \u2013 hier wird gearbeitet.<\/li>\n\n\n\n<li><strong>Staging Area<\/strong>: Eine Art virtuelle B\u00fchne, auf der Dateien f\u00fcr den n\u00e4chsten Commit vorbereitet werden.<\/li>\n\n\n\n<li><strong>Repository<\/strong>: Der permanente Speicherort aller Commits mit der vollst\u00e4ndigen Historie.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Ein Commit ist dabei ein&nbsp;<strong>eingefrorener Zustand<\/strong>&nbsp;des Projekts zu einem bestimmten Zeitpunkt \u2013 ein Snapshot. Jeder Commit erh\u00e4lt von Git automatisch:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Eine eindeutige ID (den\u00a0<strong>Hash<\/strong>\u00a0\u2013 der digitale Fingerabdruck)<\/li>\n\n\n\n<li>Den Autor und den Zeitstempel<\/li>\n\n\n\n<li>Eine Commit-Message, die beschreibt,\u00a0<em>was<\/em>\u00a0ge\u00e4ndert wurde<\/li>\n\n\n\n<li>Einen Verweis auf den vorherigen Commit (den Parent)<\/li>\n<\/ul>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong>Praxis-Tipp<\/strong>: Machen Sie kleine, logische Commits. Ein Commit sollte genau eine \u00c4nderung umfassen \u2013 etwa &#8222;Header hinzugef\u00fcgt&#8220; oder &#8222;Login-Bug behoben&#8220;. Ein einziger Commit nach drei Wochen Arbeit mit der Message &#8222;Alles fertig&#8220; macht die Versionskontrolle nutzlos.<\/p>\n<\/blockquote>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">2. Die Geburtsstunde von Git: Eine Geschichte voller Ironie<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">2.1 Linus Torvalds und das &#8222;Kernel-SCM-Saga&#8220;<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Die Entstehungsgeschichte von Git ist so unkonventionell wie ihr Sch\u00f6pfer.&nbsp;<strong>Linus Torvalds<\/strong>, der Entwickler des Linux-Kernels, stand 2005 vor einem Problem: Das bisher verwendete Versionskontrolltool BitKeeper war nicht l\u00e4nger kostenlos nutzbar.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Torvalds&#8216; Reaktion war typisch f\u00fcr ihn: &#8222;Ich baue selbst eins&#8220; \u2013 denn alle existierenden Tools waren entweder zu langsam oder zu schlecht.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Am&nbsp;<strong>3. April 2005<\/strong>&nbsp;begann er mit der Entwicklung. Nur&nbsp;<strong>zwei Wochen sp\u00e4ter<\/strong>&nbsp;war die erste funktionsf\u00e4hige Version von Git fertig. Die erste Version umfasste gerade einmal&nbsp;<strong>etwa 1.300 Zeilen Code<\/strong>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2.2 Der Name &#8222;Git&#8220;<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Das Wort &#8222;git&#8220; ist britisches Slang und bedeutet so viel wie&nbsp;<strong>&#8222;Bl\u00f6dmann&#8220;<\/strong>&nbsp;oder&nbsp;<strong>&#8222;widerlicher Typ&#8220;<\/strong>. Torvalds selbst sagte dazu: &#8222;Ich bin ein Egoist. Also benenne ich alle meine Projekte nach mir selbst. Zuerst Linux und jetzt git.&#8220; Ob er damit sich selbst oder das Tool meinte \u2013 dar\u00fcber darf spekuliert werden.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Die urspr\u00fcngliche README-Datei trug den Titel&nbsp;<strong>&#8222;Git \u2013 the stupid content tracker&#8220;<\/strong>&nbsp;\u2013 eine selbstironische Anspielung auf die Einfachheit des Tools. Dass diese README auch 20 Jahre sp\u00e4ter noch einsehbar ist, zeigt die St\u00e4rke der Versionskontrolle: Nichts geht verloren.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2.3 Von der Notl\u00f6sung zum Industriestandard<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Git ist und bleibt&nbsp;<strong>kostenfrei<\/strong>&nbsp;und steht unter der&nbsp;<strong>GPL-2.0-Lizenz<\/strong>&nbsp;als Open-Source-Software zur Verf\u00fcgung. Was als tempor\u00e4re Notl\u00f6sung begann, wurde zum unangefochtenen Standard \u2013 nicht zuletzt dank Hosting-Plattformen wie GitHub, die Git in den fr\u00fchen 2010er Jahren einem breiten Publikum zug\u00e4nglich machten.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">3. Git und GitHub: Espressomaschine und Kaffee<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">3.1 Die klare Trennung<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Eine der h\u00e4ufigsten Verwirrungen betrifft den Unterschied zwischen Git und GitHub. Die Analogie ist einfach:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Git<\/strong>\u00a0ist die\u00a0<strong>Espressomaschine<\/strong>\u00a0\u2013 das lokale Werkzeug auf Ihrem Rechner.<\/li>\n\n\n\n<li><strong>GitHub<\/strong>\u00a0ist der\u00a0<strong>Kaffee<\/strong>\u00a0\u2013 die Cloud-Plattform, auf der Projekte geteilt und gemeinsam bearbeitet werden.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Oder technischer:&nbsp;<strong>Git<\/strong>&nbsp;ist das verteilte Versionskontrollsystem, das lokal auf Ihrem Rechner l\u00e4uft.&nbsp;<strong>GitHub<\/strong>&nbsp;ist eine webbasierte Hosting-Plattform von Microsoft, die Git-Repositories online speichert, verwaltet und um Collaboration-Features wie Pull Requests, Code Reviews und Issue-Tracking erweitert.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">3.2 Die DNA von GitHub<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">GitHub ist mehr als nur Speicherplatz. Es ist:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Das soziale Netzwerk f\u00fcr Entwickler<\/strong>: Ein Portfolio, das oft mehr aussagt als jeder Lebenslauf<\/li>\n\n\n\n<li><strong>Die gr\u00f6\u00dfte Open-Source-Community<\/strong>: Mit einer Vielzahl von \u00f6ffentlichen Projekten<\/li>\n\n\n\n<li><strong>Eine Kollaborationsplattform<\/strong>: Die Zusammenarbeit in Teams \u2013 von zwei Personen bis zu Tausenden \u2013 erm\u00f6glicht<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">4. Die Praxis: Die ersten Schritte mit Git<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">4.1 Installation und Ersteinrichtung<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Die Installation von Git ist auf allen Betriebssystemen einfach:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Windows<\/strong>: Der Installer von&nbsp;<a href=\"https:\/\/git-scm.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">git-scm.com<\/a>&nbsp;f\u00fchrt durch den Prozess. W\u00e4hrend der Installation kann als Standard-Editor&nbsp;<strong>Nano<\/strong>&nbsp;oder&nbsp;<strong>Visual Studio Code<\/strong>&nbsp;gew\u00e4hlt werden \u2013 das erleichtert den Einstieg gegen\u00fcber dem kryptischen Vim-Editor.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>macOS<\/strong>: Git ist oft nicht vorinstalliert. Das Terminal bietet bei Eingabe von&nbsp;<code>git --version<\/code>&nbsp;die Installation direkt an.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nach der Installation muss Git einmalig mitgeteilt werden, wer man ist:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">bash<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">git config --global user.name \"Ihr Name\"\ngit config --global user.email \"ihre@email.de\"<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Das ist vergleichbar mit der Unterschrift unter einem Dokument \u2013 jede \u00c4nderung wird dieser Identit\u00e4t zugeordnet.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">4.2 Der erste Commit \u2013 die heilige Dreiheit<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Der Arbeitsablauf mit Git folgt immer dem gleichen Muster:<\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li><strong><code>git add<\/code><\/strong>\u00a0\u2013 Dateien zur Staging Area hinzuf\u00fcgen<\/li>\n\n\n\n<li><strong><code>git commit -m \"Nachricht\"<\/code><\/strong>\u00a0\u2013 einen Snapshot erstellen<\/li>\n\n\n\n<li><strong><code>git push<\/code><\/strong>\u00a0\u2013 die \u00c4nderungen mit dem Remote-Repository synchronisieren<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Dieser Rhythmus \u2013&nbsp;<em>add, commit, push<\/em>&nbsp;\u2013 geht erfahrenen Entwicklern irgendwann in Fleisch und Blut \u00fcber. Die Magie dahinter: Jeder Commit ist ein&nbsp;<strong>Sicherheitsnetz<\/strong>. Ein Fehler? Kein Problem \u2013 zur\u00fccksetzen, korrigieren, weitermachen.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">4.3 Der .git-Ordner \u2013 das Gehirn des Projekts<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Beim Initialisieren oder Klonen eines Repositories erzeugt Git einen versteckten Ordner namens&nbsp;<strong><code>.git<\/code><\/strong>. Dieser Ordner ist das Herzst\u00fcck \u2013 er enth\u00e4lt die gesamte Versionsgeschichte, alle Konfigurationen und die komplette Metadaten-Struktur.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong>Wichtig<\/strong>: Dieser Ordner sollte&nbsp;<strong>niemals manuell<\/strong>&nbsp;ver\u00e4ndert werden. Git verwaltet ihn automatisch.<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Zu den wichtigsten Dateien im und um das Repository geh\u00f6ren:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th class=\"has-text-align-left\" data-align=\"left\">Datei<\/th><th class=\"has-text-align-left\" data-align=\"left\">Funktion<\/th><\/tr><\/thead><tbody><tr><td><code>.git<\/code>&nbsp;(Ordner)<\/td><td>Das Gehirn \u2013 enth\u00e4lt die gesamte Historie<\/td><\/tr><tr><td><code>.gitignore<\/code><\/td><td>Der T\u00fcrsteher \u2013 legt fest, welche Dateien ignoriert werden<\/td><\/tr><tr><td><code>.git\/config<\/code><\/td><td>Der Ausweis \u2013 speichert Name, E-Mail und projekt-spezifische Einstellungen<\/td><\/tr><tr><td><code>README.md<\/code><\/td><td>Die Visitenkarte \u2013 die Startseite des Projekts in Markdown<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">4.4 Die&nbsp;<code>.gitignore<\/code>&nbsp;\u2013 der T\u00fcrsteher<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Die&nbsp;<code>.gitignore<\/code>-Datei ist wahrscheinlich die Datei, mit der Entwickler am h\u00e4ufigsten interagieren. Sie ist eine einfache Textdatei, die festlegt, welche Dateien&nbsp;<strong>nicht<\/strong>\u7248\u672ciert werden sollen:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Geheime Passw\u00f6rter und API-Keys<\/li>\n\n\n\n<li>Riesige Datens\u00e4tze (z.B. CSV-Dateien mit Millionen Zeilen)<\/li>\n\n\n\n<li>Tempor\u00e4re Dateien und Cache-Ordner<\/li>\n\n\n\n<li>Betriebssystem-spezifische Dateien (wie\u00a0<code>Thumbs.db<\/code>\u00a0unter Windows oder\u00a0<code>.DS_Store<\/code>\u00a0auf dem Mac)<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">F\u00fcr g\u00e4ngige Technologie-Stacks gibt es vorgefertigte Templates auf&nbsp;<strong><a href=\"https:\/\/www.toptal.com\/developers\/gitignore\" target=\"_blank\" rel=\"noreferrer noopener\">gitignore.io<\/a><\/strong>&nbsp;\u2013 ein Tool, das basierend auf Betriebssystem, IDE und Programmiersprache eine optimale&nbsp;<code>.gitignore<\/code>&nbsp;generiert.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">5. Branches: Die Kunst des parallelen Denkens<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">5.1 Was ist ein Branch?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Ein&nbsp;<strong>Branch<\/strong>&nbsp;(Zweig) ist eine&nbsp;<strong>separate Entwicklungslinie<\/strong>&nbsp;des Codes. Er erlaubt es, neue Features, Bugfixes oder Experimente durchzuf\u00fchren,&nbsp;<strong>ohne den Hauptcode zu beeinflussen<\/strong>&nbsp;\u2013 besonders wertvoll in der Teamarbeit.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Stellen Sie sich einen Branch wie eine&nbsp;<strong>Abzweigung einer Stra\u00dfe<\/strong>&nbsp;vor: Sie k\u00f6nnen einen anderen Weg einschlagen, experimentieren und sp\u00e4ter wieder zur Hauptstra\u00dfe zur\u00fcckkehren.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">5.2 Die wichtigsten Branch-Typen<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Main\/Master<\/strong>: Der Hauptzweig, der in der Regel den stabilen, produktionsreifen Code enth\u00e4lt<\/li>\n\n\n\n<li><strong>Feature-Branches<\/strong>: F\u00fcr neue Funktionen (z.B.\u00a0<code>feature\/login<\/code>,\u00a0<code>feature\/payment<\/code>)<\/li>\n\n\n\n<li><strong>Bugfix-Branches<\/strong>: F\u00fcr Fehlerbehebungen (z.B.\u00a0<code>bugfix\/nullpointer<\/code>)<\/li>\n\n\n\n<li><strong>Release-Branches<\/strong>: F\u00fcr die Vorbereitung neuer Versionen<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">5.3 Branches sind nur Pointer<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Intern sind Branches nichts anderes als&nbsp;<strong>Zeiger (Pointer) auf einen bestimmten Commit<\/strong>. Das macht sie extrem leichtgewichtig \u2013 das Erstellen eines neuen Branches kostet praktisch keine Ressourcen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Der&nbsp;<strong>HEAD<\/strong>&nbsp;ist ein spezieller Pointer, der auf den Commit zeigt, in dem man sich gerade befindet \u2013 er spiegelt den aktuellen Zustand des Working Directories wider.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">5.4 Merging: Zusammenf\u00fchren von Branches<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Wenn ein Feature fertig ist, wird der Branch wieder mit dem Hauptzweig&nbsp;<strong>zusammengef\u00fchrt (gemergt)<\/strong>. Das geschieht mit dem Befehl&nbsp;<code>git merge<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Merge-Konflikte<\/strong>&nbsp;entstehen, wenn zwei Branches die&nbsp;<strong>gleiche Datei an der gleichen Stelle<\/strong>&nbsp;ge\u00e4ndert haben. Git kann dann nicht automatisch entscheiden, welche \u00c4nderung die richtige ist \u2013 der Mensch muss eingreifen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Die Konfliktl\u00f6sung erfolgt manuell:<\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li>Die konfliktbehaftete Datei wird ge\u00f6ffnet<\/li>\n\n\n\n<li>Die Konflikt-Markierungen (<code>&lt;&lt;&lt;&lt;&lt;&lt;&lt;<\/code>,\u00a0<code>=======<\/code>,\u00a0<code>>>>>>>><\/code>) zeigen die konkurrierenden \u00c4nderungen<\/li>\n\n\n\n<li>Der Entwickler w\u00e4hlt aus, welche \u00c4nderung erhalten bleibt, oder kombiniert beide<\/li>\n\n\n\n<li>Die Datei wird als &#8222;gel\u00f6st&#8220; markiert und der Merge-Commit abgeschlossen<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">6. Der Pull-Request-Workflow: Wie Open Source funktioniert<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">6.1 Fork \u2013 die eigene Kopie<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Bei Open-Source-Projekten hat man in der Regel keine Schreibrechte auf das originale Repository. Die L\u00f6sung hei\u00dft&nbsp;<strong>Fork<\/strong>&nbsp;\u2013 eine&nbsp;<strong>vollst\u00e4ndige Kopie<\/strong>&nbsp;des Projekts im eigenen GitHub-Account.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Auf diesem Fork kann man beliebig experimentieren, \u00c4nderungen vornehmen und Commits durchf\u00fchren.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">6.2 Der Pull Request \u2013 das Herz der Zusammenarbeit<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Ein&nbsp;<strong>Pull Request (PR)<\/strong>&nbsp;ist der formelle Vorschlag, \u00c4nderungen aus einem Fork oder Branch in ein anderes Repository zu \u00fcbernehmen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Der typische Ablauf:<\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li><strong>Fork<\/strong>\u00a0des Original-Repositories erstellen<\/li>\n\n\n\n<li><strong>Clone<\/strong>\u00a0des Forks auf den lokalen Rechner<\/li>\n\n\n\n<li><strong>Branch<\/strong>\u00a0f\u00fcr die \u00c4nderung erstellen<\/li>\n\n\n\n<li><strong>Commits<\/strong>\u00a0auf diesem Branch durchf\u00fchren<\/li>\n\n\n\n<li><strong>Push<\/strong>\u00a0der Commits in den Fork<\/li>\n\n\n\n<li><strong>Pull Request<\/strong>\u00a0vom Fork-Branch zum Original-Repository \u00f6ffnen<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Ein guter Pull Request enth\u00e4lt:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Einen aussagekr\u00e4ftigen Titel<\/li>\n\n\n\n<li>Eine detaillierte Beschreibung der \u00c4nderungen<\/li>\n\n\n\n<li>Verweise auf verwandte Issues (mit\u00a0<code>#Issue-Nummer<\/code>)<\/li>\n\n\n\n<li>Gegebenenfalls die Markierung von Reviewern<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">6.3 Code Review \u2013 die Qualit\u00e4tssicherung<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Im Pull Request findet die&nbsp;<strong>Code Review<\/strong>&nbsp;statt \u2013 eines der wertvollsten Elemente der Open-Source-Kultur. Reviewer:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Kommentieren einzelne Zeilen<\/li>\n\n\n\n<li>Schlagen Verbesserungen vor<\/li>\n\n\n\n<li>Fordern weitere Tests an<\/li>\n\n\n\n<li>Diskutieren die Architektur<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Erst wenn alle Beteiligten zufrieden sind, wird der Pull Request&nbsp;<strong>gemergt<\/strong>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">7. Lizenzen: Die rechtliche Dimension<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">7.1 &#8222;Ohne Lizenz = Alle Rechte vorbehalten&#8220;<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Ein h\u00e4ufiger Irrglaube: &#8222;Wenn ich meinen Code auf GitHub \u00f6ffentlich mache, ist er Open Source.&#8220; Das ist&nbsp;<strong>falsch<\/strong>. In fast allen L\u00e4ndern gilt das Urheberrecht: Wer Code schreibt, dem geh\u00f6rt er auch.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ohne explizite Lizenz gilt&nbsp;<strong>&#8222;All rights reserved&#8220;<\/strong>&nbsp;\u2013 andere d\u00fcrfen den Code ansehen, aber nicht verwenden, kopieren, ver\u00e4ndern oder in eigenen Projekten nutzen.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">7.2 Die wichtigsten Lizenzkategorien<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Permissive Lizenzen<\/strong>&nbsp;\u2013 &#8222;Mach damit, was du willst, aber nerv mich nicht&#8220;:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th class=\"has-text-align-left\" data-align=\"left\">Lizenz<\/th><th class=\"has-text-align-left\" data-align=\"left\">Charakteristik<\/th><th class=\"has-text-align-left\" data-align=\"left\">Einsatzgebiet<\/th><\/tr><\/thead><tbody><tr><td><strong>MIT<\/strong><\/td><td>Extrem kurz und simpel \u2013 Nutzung, Kopie, \u00c4nderung, Verkauf erlaubt; Namensnennung erforderlich; keine Garantie<\/td><td>Perfekt f\u00fcr kleine Tools, Skripte, Webprojekte<\/td><\/tr><tr><td><strong>Apache 2.0<\/strong><\/td><td>\u00c4hnlich zur MIT, aber juristisch wasserdichter, besonders bei Patenten<\/td><td>Gro\u00dfe Firmen (Google, Android)<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Copyleft-Lizenzen<\/strong>&nbsp;\u2013 &#8222;Geben und Nehmen&#8220;:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th class=\"has-text-align-left\" data-align=\"left\">Lizenz<\/th><th class=\"has-text-align-left\" data-align=\"left\">Charakteristik<\/th><th class=\"has-text-align-left\" data-align=\"left\">Einsatzgebiet<\/th><\/tr><\/thead><tbody><tr><td><strong>GPL<\/strong><\/td><td>Wer den Code nutzt und ver\u00e4ndert, muss sein gesamtes Programm ebenfalls unter GPL ver\u00f6ffentlichen<\/td><td>Wenn sichergestellt werden soll, dass der Code immer frei bleibt<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong>Empfehlung f\u00fcr Einsteiger<\/strong>: W\u00e4hlen Sie die&nbsp;<strong>MIT-Lizenz<\/strong>&nbsp;\u2013 sie macht es potenziellen Arbeitgebern und Kolleginnen einfach, Ihren Code zu nutzen, und zeigt, dass Sie Open Source verstehen.<\/p>\n<\/blockquote>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">8. Die Konsole: Die wahre Heimat von Git<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">8.1 Warum die Konsole?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Moderne GUIs und IDEs (wie VS Code, PyCharm oder GitHub Desktop) machen Git zug\u00e4nglich. Aber wer Git wirklich verstehen will, kommt an der&nbsp;<strong>Konsole<\/strong>&nbsp;nicht vorbei. Sie ist:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Effizienter<\/strong>\u00a0f\u00fcr erfahrene Anwender<\/li>\n\n\n\n<li><strong>Plattformunabh\u00e4ngig<\/strong>\u00a0\u2013 die gleichen Befehle funktionieren \u00fcberall<\/li>\n\n\n\n<li><strong>Transparenter<\/strong>\u00a0\u2013 sie zeigt genau, was passiert<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">8.2 Die wichtigsten Navigationsbefehle<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th class=\"has-text-align-left\" data-align=\"left\">Befehl<\/th><th class=\"has-text-align-left\" data-align=\"left\">Funktion<\/th><\/tr><\/thead><tbody><tr><td><code>cd &lt;Pfad&gt;<\/code><\/td><td>Change Directory \u2013 in einen Ordner wechseln<\/td><\/tr><tr><td><code>ls<\/code>&nbsp;(Linux\/macOS) \/&nbsp;<code>dir<\/code>&nbsp;(Windows)<\/td><td>Verzeichnisinhalt anzeigen<\/td><\/tr><tr><td><code>cd ..<\/code><\/td><td>Ein Verzeichnis zur\u00fcckgehen<\/td><\/tr><tr><td><code>pwd<\/code><\/td><td>Aktuellen Pfad anzeigen<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">8.3 Die zentralen Git-Befehle im \u00dcberblick<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th class=\"has-text-align-left\" data-align=\"left\">Befehl<\/th><th class=\"has-text-align-left\" data-align=\"left\">Funktion<\/th><\/tr><\/thead><tbody><tr><td><code>git clone &lt;URL&gt;<\/code><\/td><td>Ein Repository von GitHub lokal kopieren<\/td><\/tr><tr><td><code>git status<\/code><\/td><td>Den aktuellen Zustand anzeigen \u2013 welche Dateien wurden ge\u00e4ndert?<\/td><\/tr><tr><td><code>git add &lt;Datei&gt;<\/code><\/td><td>Datei zur Staging Area hinzuf\u00fcgen<\/td><\/tr><tr><td><code>git commit -m \"Nachricht\"<\/code><\/td><td>Einen Snapshot mit Beschreibung erstellen<\/td><\/tr><tr><td><code>git push<\/code><\/td><td>Lokale Commits auf GitHub hochladen<\/td><\/tr><tr><td><code>git pull<\/code><\/td><td>\u00c4nderungen von GitHub herunterladen und einbauen<\/td><\/tr><tr><td><code>git branch<\/code><\/td><td>Alle Branches anzeigen<\/td><\/tr><tr><td><code>git checkout &lt;Branch&gt;<\/code><\/td><td>Zu einem anderen Branch wechseln<\/td><\/tr><tr><td><code>git merge &lt;Branch&gt;<\/code><\/td><td>Einen Branch in den aktuellen integrieren<\/td><\/tr><tr><td><code>git log<\/code><\/td><td>Die Commit-Historie anzeigen<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">8.4 Fortgeschrittene Befehle<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th class=\"has-text-align-left\" data-align=\"left\">Befehl<\/th><th class=\"has-text-align-left\" data-align=\"left\">Funktion<\/th><th class=\"has-text-align-left\" data-align=\"left\">Risiko<\/th><\/tr><\/thead><tbody><tr><td><code>git reset<\/code><\/td><td>HEAD auf einen fr\u00fcheren Commit setzen; \u00c4nderungen bleiben im Working Directory<\/td><td>Mittel<\/td><\/tr><tr><td><code>git reset --hard<\/code><\/td><td>Alles auf einen fr\u00fcheren Commit zur\u00fccksetzen \u2013 \u00c4nderungen sind&nbsp;<strong>weg<\/strong><\/td><td><strong>Hoch<\/strong><\/td><\/tr><tr><td><code>git revert &lt;Commit&gt;<\/code><\/td><td>Einen alten Commit r\u00fcckg\u00e4ngig machen, ohne die History zu ver\u00e4ndern \u2013 es entsteht ein neuer Commit<\/td><td>Gering<\/td><\/tr><tr><td><code>git rebase<\/code><\/td><td>Die Commit-History linear umschreiben<\/td><td><strong>Sehr hoch<\/strong><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong>Warnung<\/strong>:&nbsp;<code>git rebase<\/code>&nbsp;sollte&nbsp;<strong>niemals<\/strong>&nbsp;auf Branches angewendet werden, die bereits gepusht wurden und von anderen genutzt werden. Die History wird komplett ver\u00e4ndert \u2013 das kann bei Teammitgliedern zu massiven Problemen f\u00fchren.<\/p>\n<\/blockquote>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">9. Git im Berufsleben: Mehr als nur ein Tool<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">9.1 Das GitHub-Profil als digitaler Lebenslauf<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">F\u00fcr Data Scientists und Softwareentwickler ist GitHub&nbsp;<strong>mehr als ein Speicherplatz<\/strong>&nbsp;\u2013 es ist das&nbsp;<strong>digitale Portfolio<\/strong>. Bei Bewerbungen schauen Recruiter und technische Leads oft zuerst auf das GitHub-Profil, weil es mehr aussagt als jede Note:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Qualit\u00e4t des Codes<\/strong>: Ist er sauber, dokumentiert, gut strukturiert?<\/li>\n\n\n\n<li><strong>Aktivit\u00e4t<\/strong>: Gibt es regelm\u00e4\u00dfige Commits?<\/li>\n\n\n\n<li><strong>Zusammenarbeit<\/strong>: Gibt es Beitr\u00e4ge zu anderen Projekten?<\/li>\n\n\n\n<li><strong>Technologie-Stack<\/strong>: Welche Sprachen und Tools werden verwendet?<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">9.2 Die Profile-README \u2013 der versteckte Trick<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Ein oft \u00fcbersehenes Feature ist die&nbsp;<strong>Profile-README<\/strong>: Erstellt man ein Repository mit genau dem eigenen GitHub-Benutzernamen, wird dessen README-Datei automatisch oben auf dem Profil angezeigt.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Diese README kann genutzt werden f\u00fcr:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Eine pers\u00f6nliche Vorstellung<\/li>\n\n\n\n<li>Eine \u00dcbersicht der wichtigsten Projekte<\/li>\n\n\n\n<li>Technologie-Icons und Skill-Badges<\/li>\n\n\n\n<li>Kontaktinformationen und Social-Media-Links<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">9.3 Contribution zu Open Source \u2013 der Einstieg<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Der Einstieg in Open Source muss nicht schwer sein. Viele Projekte kennzeichnen Issues mit dem Label&nbsp;<strong>&#8222;good first issue&#8220;<\/strong>&nbsp;\u2013 das sind in der Regel:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Kleine Dokumentationskorrekturen<\/li>\n\n\n\n<li>Tippfehler in Kommentaren<\/li>\n\n\n\n<li>Einfache Bugfixes<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Der Ablauf:<\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li>Ein Issue finden, das interessant wirkt<\/li>\n\n\n\n<li>Im Issue kommentieren, dass man daran arbeiten m\u00f6chte<\/li>\n\n\n\n<li>Das Repository forken<\/li>\n\n\n\n<li>Die \u00c4nderungen lokal umsetzen<\/li>\n\n\n\n<li>Einen Pull Request \u00f6ffnen<\/li>\n\n\n\n<li>Auf Feedback warten und gegebenenfalls nachbessern<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">10. Ausblick: Die Zukunft der Versionskontrolle<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Git hat die Art und Weise, wie Software entwickelt wird, revolutioniert. Doch die Entwicklung steht nicht still:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>KI-gest\u00fctzte Entwicklung<\/strong>: Tools wie GitHub Copilot zeigen, wohin die Reise geht \u2013 KI, die nicht nur Code vorschl\u00e4gt, sondern auch bei Merge-Konflikten unterst\u00fctzt.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>DevOps und CI\/CD<\/strong>: Git ist heute das Herzst\u00fcck moderner Continuous-Integration- und Continuous-Deployment-Pipelines. Jeder Push kann automatisch Tests ausl\u00f6sen und Code ausliefern.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Alternativen und Erg\u00e4nzungen<\/strong>: W\u00e4hrend Git dominant bleibt, entstehen neue Konzepte wie&nbsp;<strong>Monorepos<\/strong>&nbsp;(alle Code in einem Repository) und&nbsp;<strong>Git LFS<\/strong>&nbsp;(Large File Storage) f\u00fcr gro\u00dfe Dateien.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Die Community bleibt der Kern<\/strong>: Was Git und GitHub so besonders macht, ist die weltweite Community. Der Austausch, die gegenseitige Hilfe, die gemeinsame Entwicklung von Software \u2013 das ist mehr als Technologie, das ist Kultur.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Fazit<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Git ist kein gew\u00f6hnliches Tool. Es ist das&nbsp;<strong>Fundament moderner Softwareentwicklung<\/strong>&nbsp;\u2013 ein Sicherheitsnetz, eine Zeitmaschine, eine Kollaborationsplattform und ein Lernwerkzeug zugleich.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Von der Notl\u00f6sung eines einzelnen Entwicklers hat sich Git zum unangefochtenen Standard entwickelt, der 96 % aller professionellen Entwickler verbindet. Es erm\u00f6glicht uns,&nbsp;<strong>furchtlos zu experimentieren<\/strong>, weil jeder Fehler r\u00fcckg\u00e4ngig gemacht werden kann. Es erm\u00f6glicht&nbsp;<strong>weltweite Zusammenarbeit<\/strong>&nbsp;\u00fcber Zeitzonen und Unternehmensgrenzen hinweg. Und es lehrt uns, was gutes Software-Engineering ausmacht: kleine, logische Schritte, klare Kommunikation und die Bereitschaft, voneinander zu lernen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Die Reise mit Git beginnt verwirrend \u2013 das ist v\u00f6llig normal. Aber wer dranbleibt, regelm\u00e4\u00dfig committet und sich in die Community einbringt, wird schnell feststellen: Git ist nicht nur ein Werkzeug, es ist eine&nbsp;<strong>Denkweise<\/strong>. Und diese Denkweise macht aus Hobbycoderinnen und Hobbycodern Profis.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Quellen<\/h2>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li><strong>Stack Overflow Developer Survey 2022<\/strong>\u00a0\u2013 96 % der professionellen Entwickler nutzen Git.\u00a0<em><a href=\"https:\/\/survey.stackoverflow.co\/\" target=\"_blank\" rel=\"noreferrer noopener\">survey.stackoverflow.co<\/a><\/em>\u00a0<\/li>\n\n\n\n<li><strong>Linus Torvalds&#8216; Entwicklung von Git<\/strong>\u00a0\u2013 Erste Version in zwei Wochen entwickelt, April 2005.\u00a0<em>Linux Journal, &#8222;Git &#8211; Revision Control Perfected&#8220;<\/em>\u00a0<\/li>\n\n\n\n<li><strong>Git-Lizenz<\/strong>\u00a0\u2013 Git ist Open Source unter der GNU General Public License Version 2.\u00a0<em>Git Source Code, COPYING-Datei<\/em>\u00a0<\/li>\n\n\n\n<li><strong>Unterschied Git vs. GitHub<\/strong>\u00a0\u2013 Git ist das verteilte Versionskontrollsystem, GitHub ist die Hosting-Plattform.\u00a0<em>Microsoft Learn, &#8222;Explain the difference between Git and GitHub&#8220;<\/em>\u00a0<\/li>\n\n\n\n<li><strong>Verteilte vs. zentralisierte Versionskontrolle<\/strong>\u00a0\u2013 Verteidigte Systeme haben keinen Single Point of Failure.\u00a0<em>GitLab, &#8222;Why you should switch to distributed version control&#8220;<\/em>\u00a0<\/li>\n\n\n\n<li><strong>Merge-Konflikte<\/strong>\u00a0\u2013 Entstehen, wenn zwei Branches die gleiche Datei \u00e4ndern.\u00a0<em>GitHub Docs, &#8222;About merge conflicts&#8220;<\/em>\u00a0<\/li>\n\n\n\n<li><strong>Pull-Request-Workflow<\/strong>\u00a0\u2013 Forks und Pull Requests sind der Kern der Open-Source-Zusammenarbeit.\u00a0<em><a href=\"https:\/\/git-scm.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">git-scm.com<\/a>,\u00a0&#8222;Contributing to a Project&#8220;<\/em>\u00a0<\/li>\n\n\n\n<li><strong>.gitignore-Templates<\/strong>\u00a0\u2013 Vorgefertigte Templates f\u00fcr verschiedene Technologie-Stacks.\u00a0<em><a href=\"https:\/\/gitignore.io\/\" target=\"_blank\" rel=\"noreferrer noopener\">gitignore.io<\/a><\/em>\u00a0<\/li>\n<\/ol>","protected":false},"excerpt":{"rendered":"<p>Autor: DerSchneider Einleitung Stellen Sie sich vor, Sie arbeiten in einem Team an einer Android-App. Nach einem Monat intensiver Entwicklung stellt der Kunde fest: Die alte Version sah besser aus. Doch die alte Version ist weg \u2013 der Quellcode wurde \u00fcberschrieben, die alten Dateien gel\u00f6scht. Ein Albtraum, der in der Softwareentwicklung vor der \u00c4ra moderner [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[38,41,17],"tags":[9527,9523,9526,9528,5107,9525,6432,9524],"class_list":["post-6491","post","type-post","status-publish","format-standard","hentry","category-alltagsphanomene","category-digitalkultur","category-im-herz","tag-branching","tag-git","tag-github","tag-merge-konflikt","tag-open-source","tag-pull-request","tag-softwareentwicklung","tag-versionskontrolle"],"_links":{"self":[{"href":"https:\/\/technodidact.de\/en\/wp-json\/wp\/v2\/posts\/6491","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/technodidact.de\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/technodidact.de\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/technodidact.de\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/technodidact.de\/en\/wp-json\/wp\/v2\/comments?post=6491"}],"version-history":[{"count":1,"href":"https:\/\/technodidact.de\/en\/wp-json\/wp\/v2\/posts\/6491\/revisions"}],"predecessor-version":[{"id":6492,"href":"https:\/\/technodidact.de\/en\/wp-json\/wp\/v2\/posts\/6491\/revisions\/6492"}],"wp:attachment":[{"href":"https:\/\/technodidact.de\/en\/wp-json\/wp\/v2\/media?parent=6491"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/technodidact.de\/en\/wp-json\/wp\/v2\/categories?post=6491"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/technodidact.de\/en\/wp-json\/wp\/v2\/tags?post=6491"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}