Versionskontrolle
Versionskontrollwerkzeuge (oft als Version Control Systems oder VCS bezeichnet) sind ein wesentlicher Bestandteil moderner Arbeitsabläufe, um Codebasen zu sichern und gemeinsam daran zu arbeiten. Dieses Modul führt Sie durch die Grundlagen der Versionskontrolle mit Git und GitHub.
Überblick
Versionskontrollwerkzeuge sind unerlässlich für die Softwareentwicklung:
- Es ist selten, dass Sie vollständig alleine an einem Projekt arbeiten, und sobald Sie beginnen, mit anderen zusammenzuarbeiten, besteht das Risiko, dass Sie sich in die Quere kommen — das ist der Fall, wenn beide versuchen, gleichzeitig denselben Code zu aktualisieren. Sie benötigen einen Mechanismus, um solche Vorkommnisse zu verwalten und Verlust von Arbeit zu vermeiden.
- Wenn Sie alleine oder im Team an einem Projekt arbeiten, möchten Sie den Code an einem zentralen Ort sichern, damit er nicht verloren geht, falls Ihr Computer ausfällt.
- Sie möchten auch in der Lage sein, zu früheren Versionen zurückzukehren, wenn später ein Problem entdeckt wird. Möglicherweise haben Sie bereits begonnen, dies in Ihrer eigenen Arbeit zu tun, indem Sie verschiedene Versionen derselben Datei erstellen, z. B.
myCode.js
,myCode_v2.js
,myCode_v3.js
,myCode_final.js
,myCode_really_really_final.js
usw., aber das ist wirklich fehleranfällig und unzuverlässig. - Verschiedene Teammitglieder möchten häufig eigene Versionen des Codes erstellen (in Git Branches genannt), an einem neuen Feature in dieser Version arbeiten und dann in kontrollierter Weise (in GitHub verwenden wir Pull Requests) mit der Master-Version zusammenführen, wenn sie fertig sind.
Versionskontrollwerkzeuge erfüllen die oben genannten Anforderungen. Git ist ein Beispiel für ein Versionskontrollwerkzeug, und GitHub ist eine Website + Infrastruktur, die einen Git-Server bereitstellt, zusammen mit einer Reihe wirklich nützlicher Werkzeuge zur Arbeit mit Git-Repositories, sowohl individuell als auch im Team, wie z. B. das Melden von Problemen mit dem Code, Überprüfungstools, Projektmanagementfunktionen wie das Zuweisen von Aufgaben und Statusmeldungen und mehr.
Hinweis: Git ist eigentlich ein verteiltes Versionskontrollwerkzeug, was bedeutet, dass eine vollständige Kopie des Repositories, das die Codebasis enthält, auf Ihrem Computer (und dem aller anderen) erstellt wird. Sie nehmen Änderungen an Ihrer eigenen Kopie vor und senden diese Änderungen dann zurück an den Server, wo ein Administrator entscheidet, ob Ihre Änderungen mit der Master-Kopie zusammengeführt werden.
Voraussetzungen
Um Git und GitHub zu verwenden, benötigen Sie:
- Einen Desktop-Computer mit installiertem Git (siehe die Git-Downloadseite).
- Ein Werkzeug zur Verwendung von Git. Abhängig davon, wie Sie arbeiten möchten, könnten Sie einen Git GUI-Client verwenden (wir empfehlen GitHub Desktop, SourceTree oder Git Kraken) oder einfach ein Terminal nutzen. Tatsächlich ist es wahrscheinlich nützlich, zumindest die Grundlagen der Git-Terminalbefehle zu lernen, selbst wenn Sie eine GUI verwenden möchten.
- Ein GitHub-Konto. Wenn Sie noch keines haben, registrieren Sie sich jetzt mit dem angegebenen Link.
Was die erforderlichen Kenntnisse betrifft, müssen Sie nichts über Webentwicklung, Git/GitHub oder Versionskontrolle wissen, um mit diesem Modul zu beginnen. Es wird jedoch empfohlen, dass Sie über einige Programmierkenntnisse verfügen, sodass Sie eine angemessene Computerkompetenz haben und etwas Code haben, um ihn in Ihren Repositories zu speichern!
Es ist auch vorzuziehen, dass Sie einige grundlegende Terminalkenntnisse haben, z. B. das Navigieren zwischen Verzeichnissen und das Erstellen von Dateien. Sie können alle Grundlagen in unserem Command line crash course finden.
Hinweis: GitHub ist nicht die einzige Seite/Toolset, die Sie mit Git verwenden können. Es gibt andere Alternativen wie GitLab, die Sie ausprobieren können, und Sie könnten auch versuchen, Ihren eigenen Git-Server einzurichten und diesen anstelle von GitHub zu verwenden. In diesem Kurs bleiben wir bei GitHub, um einen einzigen funktionierenden Weg anzubieten.
Lernziele
- Warum Versionskontrollsysteme notwendig sind.
- Der Unterschied zwischen Git und Websites wie GitHub und GitLab.
- Verstehen, dass Websites wie GitHub und GitLab Teamarbeit und Zusammenarbeit ermöglichen, die mit nur plain Git nicht so einfach sind.
- Grundkonfiguration — Installation von Git, Anmeldung für ein Konto auf Ihrer gewählten Social-Coding-Seite.
- Umgang mit Sicherheitsanforderungen, wie SSH/GPG-Schlüsseln.
- Ein Repository erstellen und Änderungen daran vornehmen.
- Beiträge zu Repositories anderer: forken, einen neuen Branch erstellen, einen PR erstellen und den Überprüfungsfluss steuern.
- Gute Haushaltsführung:
- Lokale Repositories regelmäßig aktualisieren, damit sie mit ihren Remote-Gegenstücken synchron sind.
- Verwenden von
.gitignore
, um alles auszuschließen, das Sie nicht einchecken möchten. - Löschen von Branches, die Sie abgeschlossen haben.
- Umgang mit Merge-Konflikten.
Leitfäden
Beachten Sie, dass die unten stehenden Links Sie zu Ressourcen auf externen Seiten führen. Schließlich streben wir an, einen eigenen dedizierten Git/GitHub-Kurs zu haben, aber vorerst werden Ihnen diese helfen, sich mit dem Thema vertraut zu machen.
- Hello, World (von GitHub)
-
Dies ist ein guter Ausgangspunkt – dieser praktische Leitfaden bringt Sie dazu, sofort mit GitHub zu arbeiten und die Grundlagen von Git zu lernen, wie das Erstellen von Repositories und Branches, das Erstellen von Commits und das Öffnen und Zusammenführen von Pull Requests.
- Git Handbook (von GitHub)
-
Dieses Git-Handbuch geht etwas tiefer und erklärt, was ein Versionskontrollwerkzeug ist, was ein Repository ist, wie das grundlegende GitHub-Modell funktioniert, Git-Befehle und Beispiele und mehr.
- Projekte forken (von GitHub)
-
Projekte zu forken ist unerlässlich, wenn Sie zu jemand anderem Code beitragen möchten. Dieser Leitfaden erklärt wie.
- Über Pull Requests (von GitHub)
-
Ein nützlicher Leitfaden zum Verwalten von Pull Requests, der Art und Weise, wie Ihre vorgeschlagenen Codeänderungen an die Repositories von Personen zur Prüfung gesendet werden.
- Mastering issues (von GitHub)
-
Issues sind wie ein Forum für Ihr GitHub-Projekt, in dem Personen Fragen stellen und Probleme melden können, und Sie können Updates verwalten (zum Beispiel Personen zuweisen, um Probleme zu beheben, das Problem klären, Leuten mitteilen, dass Dinge behoben wurden). Dieser Artikel erklärt, was Sie über Issues wissen müssen.
Hinweis: Es gibt viel mehr, was Sie mit Git und GitHub tun können, aber wir glauben, dass das Obige das Minimum darstellt, das Sie wissen müssen, um Git effektiv zu verwenden. Wenn Sie tiefer in Git eintauchen, werden Sie erkennen, dass es leicht ist, Fehler zu machen, wenn Sie anfangen, kompliziertere Befehle zu nutzen. Keine Sorge, selbst professionelle Webentwickler finden Git manchmal verwirrend und lösen Probleme oft, indem sie nach Lösungen im Internet suchen oder Seiten wie Flight rules for Git und Dangit, git! konsultieren.
Siehe auch
- Den GitHub-Flow verstehen
- Git-Befehlsliste
- Mastering markdown (das Textformat, das Sie in PR, Issue-Kommentaren und
.md
-Dateien verwenden). - Erste Schritte mit GitHub Pages (wie man Demos und Websites auf GitHub veröffentlicht).
- Learn Git branching
- Flight rules for Git (ein sehr nützliches Kompendium von Möglichkeiten, bestimmte Dinge in Git zu erreichen, einschließlich der Korrektur, wenn Sie etwas falsch gemacht haben).
- Dangit, git! (ein weiteres nützliches Kompendium, speziell für Möglichkeiten zur Behebung von Fehlern).