tubetranscript.io

Fireship · Transcript · · Updated

Git It? How to use Git and Github – Transcript

Video by Fireship · Watch the original on YouTube

Summary

AI-generated from the transcript. Verify details against the source video.

  • Git dient als Versionskontrollsystem zur Verwaltung von Dateien und zur Nachverfolgung von Software-Änderungen.
  • Mit Git können mehrere Branches erstellt und später wieder mit dem Master-Branche zusammengeführt werden.
  • GitHub-Repositories ermöglichen es, lokalen Code mit einem Remote-Repository zu verbinden und Änderungen zu pushen.
Video thumbnail: Git It? How to use Git and Github
Source video on YouTube · Transcript generated automatically and may contain errors.

Use this video with Pro

Reading, copying and transcript downloads are free. Create saved AI results for this video with a signed-in Pro account ($9/month).

Transcript

Search ignores accents. All transcript text stays visible.

Bei der Entwicklung haben die meisten Tools, denen man begegnet, nur eine begrenzte Haltbarkeit. Doch trotz dieser ständigen Veränderung gibt es eine Sache, die immer gleich bleibt. Git, man hält es leicht für selbstverständlich. Doch wenn man einen Schritt zurücktritt, stellt man fest, dass Git die Softwarewelt komplett revolutioniert hat. Es ist im Grunde ein Geschichtsbuch deines Codes und Dienste wie GitHub machen Open Source Software für die ganze Welt zugänglich.

Im heutigen Video zeige ich dir die Grundlagen von Git und gebe dir ein paar fortgeschrittene Profitipps. Und ich lade dich sogar dazu ein, mit mir an einem Pull-Request auf GitHub zusammen zu arbeiten. Im Gegenzug erhältst du einen kostenlosen Sticker. Ich finde, das ist ein ziemlich gutes Angebot. Wenn du also neu hier bist, gib mir ein, gefällt mir und abonniere meinen Kanal. Dann gebe ich dir im Laufe des Videos weitere Anweisungen.

Was genau ist Git? Es ist ein Versionskontrollsystem. Aber im Grunde genommen ist es ein System zur Verwaltung deiner Dateien. Die Entwicklung von Software besteht aus einer Reihe kleiner Meilensteine, bei denen jeder einzelne Meilenstein einfach nur darin besteht, Code in eine Reihe verschiedener Dateien zu schreiben. Ihre App befindet sich in einem ständigen Wandel von einem chaotischen zu einem stabilen Zustand.

Mit Git können sie all diese Änderungen nachverfolgen. Sie können mehrere Branches oder Pfade erstellen, die sie abarbeiten und später zusammenführen können. So wird die Zusammenarbeit zwischen großen Entwicklergruppen vereinfacht. Heute zeige ich Ihnen, wie das alles funktioniert, indem ich eine Open-Source-Node-Software erstelle, an der wir alle zusammenarbeiten können.

Die Software selbst ist ein Befehlszeilenprogramm, mit den Sie Ihre Post-Anschrift verschlüsseln und sie dann zum GitHub-Repository hinzufügen können, damit ich Ihnen einen Aufkleber schicken kann. In meinem aktuellen Arbeitsverzeichnis befinden sich nur die Datei Index, Js und ein Package JSON. Ich klicke auf das Symbol für die Quellcodeverwaltung. Dort steht, keine Quellcodeverwaltungsanbieter registriert.

Als erstes müssen wir Git initialisieren, um mit der Nachverfolgung unserer Dateien zu beginnen. Dazu gibt es zwei Möglichkeiten. Wir können dies entweder direkt in VS Code oder über die Befehlszeile tun. Sie sollten sich unbedingt alle Befehle merken, die ich Ihnen in diesem Video zeige. Oftmals ist es jedoch schneller, Sie mit den integrierten Tools von VS Code auszuführen.

In diesem Video zeige ich Ihnen beide Methoden. Führen wir zunächst Git-Init über die Befehlszeile aus. Sie werden sehen, dass dadurch ein leeres Git-Repository in unserem aktuellen Arbeitsverzeichnis initialisiert wird. Sie werden feststellen, dass unsere beiden Dateien zur Änderungsliste im Quellcodeverwaltungsfenster hinzugefügt werden. So erfahren wir, welche Dateien sich seit dem letzten Snapshot des Quellcodes geändert haben.

Da wir uns in einem brandneuen Projekt befinden, haben beide Dateien eine Benutzeroberfläche. Das bedeutet, dass sie nicht nachverfolgt werden oder neu in diesem Arbeitsverzeichnis erstellt wurden. Nun noch ein kurzer Profitipp. Wenn Sie ein Git-Repository initialisieren, wird ein verstecktes Git-Verzeichnis erstellt. Wenn Sie Git vollständig derinitialisieren oder aus Ihrem Projekt entfernen möchten, können Sie dieses Verzeichnis einfach entfernen.

Seien Sie dabei jedoch vorsichtig. Ein zweiter Profitipp ist die Installation des Git-Lens-Plugins für VS Code. Es bettet alle mögliche nützlichen Informationen direkt in deinen Code ein und bietet dir dieses zusätzliche Bedienfeld, in den du einfach durch deinen Git-Verlauf navigieren kannst. Der nächste wichtige Punkt beim Einrichten eines GitHub-Repositories ist das Erstellen einer Git-Ignore-Datei.

Du möchtest nicht alles in der Quellcodeverwaltung haben. Du solltest beispielsweise auf jeden Fall alle sensiblen privaten Appi-Schlüssel heraushalten. Außerdem solltest du den Quellcode für deine Abhängigkeiten wie deine Notmodule und alle unnötigen Protokoll-Dateien herausfiltern. Git betrachtet diese Git-Ignore-Datei automatisch und filtert alles heraus, was mit dem Dateipfad oder Muster übereinstimmt.

Du kannst diese Datei manuell erstellen, aber die professionelle Möglichkeit ist die Verwendung eines VS Code Plugins, um automatisch alle Standardwerte für deine Umgebung zu generieren. Das spart uns eine Menge Zeit und nun können wir mit dem nächsten Konzept fortfahren. Wie erstelle ich einen Snapshot oder Commit meines aktuellen Arbeitsverzeichnisses? Ein Commit ist wie eine Seite im Verlaufsbuch, die über eine eigene eindeutige ID verfügt und niemals geändert werden kann, ohne dass Git davon erfährt.

Als erstes möchten wir die Dateien bereitstellen, die in diesem Commit aufgenommen werden sollen. Mit dem Befehl GIT-Ed können Sie Dateien bereitstellen. Dabei können Sie einzelne Dateien oder das gesamte Arbeitsverzeichnis hinzufügen, indem Sie einfach einen Punkt verwenden. VS Code erleichtert das Bereitstellen oder entfernen von Dateien durch Klicken auf die Plus- oder Minusschaltfläche.

Sie können Dateien über die Befehlsteile aus dem Staging entfernen, indem Sie GetReset ausführen. Seien Sie dabei jedoch vorsichtig, da es sich um ein Hard-Fleck handelt. Wenn Sie es verwenden, werden die Dateien nicht nur aus dem Staging entfernt, sondern auch dauerhaft gelöscht. Wenn wir dieses Fleck jetzt für unser neues Projekt ausführen, wird alles gelöscht und wir müssen von vorne beginnen.

An dieser Stelle verrate ich Ihnen einen meiner wichtigsten Profitipps. Führen Sie viele kleine Commits aus. Diese Vorgehensweise hilft nicht nur, katastrophale Codeverluste zu vermeiden, sondern erleichtert auch die Nachvollziehbarkeit Ihrer Code-Änderungen. Jetzt sind wir bereit für unseren ersten Commit. Als erstes führen wir GIT-Ed aus, um unsere Dateien bereitzustellen.

Anschließend führen wir GetCommit mit dem Fleck M aus, um eine beschreibende Nachricht über die Änderungen in unserem Code hinzuzufügen. Ein Profitipp, verwende ein Emoji, um mehr GitHub-Sterne für dein Projekt zu erhalten. GitHub-Sterne sind die beste Möglichkeit, um zu erkennen, wie gut ein Softwareprojekt wirklich ist. Du kannst deine Kommentare auch mehr zeilig gestalten, um in der ersten Zeile eine Zusammenfassung und in der zweiten Zeile eine detailliertere Beschreibung der Änderungen bereitzustellen.

Du wirst feststellen, dass dadurch die Dateien aus den Stagechanges entfernt werden und wir ein sauberes Arbeitsverzeichnis erhalten. GIT teilt uns dann genau mit, welche Dateien als Teil dieses Commits erstellt, geändert oder gelöscht wurden. Wenn wir nun unser Git-Lens-Pluggen aufrufen, siehst du, dass wir einen Verlauf der Code-Enderungen haben, den wir durchsuchen und genau sehen können, welche Code-Zeilen sich geändert haben.

Bis zu diesem Punkt haben wir am sogenannten Master-Branche gearbeitet, der wie der Hauptstamm des Baums ist, der den eigentlichen Quellcode enthält, den du veröffentlicht und an deine Kunden auslieferst. Was passiert also, wenn du über eine stabile Code-Basis verfügst und einen Fehler beheben musst oder mit einem neuen Feature experimentieren möchtest?

In Git erstellst du normalerweise einen neuen Branche basierend auf deinem letzten Commit, dann behebst du den Fehler in dem separaten Branche und führst ihn dann wieder mit dem Master-Branche zusammen, sobald er fertig ist. Das bedeutet, dass mehrere Entwickler an derselben Code-Basis in ihren eigenen Branches arbeiten können, ohne sich gegenseitig in die Krere zu kommen.

Du kannst alle aktuellen Branches in deiner Code-Basis sehen, indem du Git-Branche ausführst. In unserem Fall wäre das nur der Master-Branche. Du kannst zwischen Branches und Git wechseln, indem du den Befehl Checkout ausführst. In unserem Fall wurde der Branche noch nicht erstellt. Wir erstellen ihn also mit dem Fleck B und geben ihn den Namen Feature.

Somit wird jeglicher Code, den wir hier schreiben, auf diesen Branche beschränkt. Jetzt können wir schnell in die Zukunft vorspulen und du wirst sehen, dass ich eine Menge Code in diesen Branche geschrieben habe. Derzeit befindet sich dieser Code einfach nur im Arbeitsverzeichnis. Daher muss ich ihn in diesen Feature Branche kommenten. Diesmal führe ich meinen Komet direkt in VS Code aus.

Anschließend können wir wieder zum Master-Branche wechseln. Und sie werden sehen, dass alle unsere neuen Dateien verschwinden und wir wieder im ursprünglichen Zustand auf dem Master sind. An dieser Stelle möchte ich darauf hinweisen, dass sie ihre Dateien nicht unbedingt kommenten müssen, bevor sie zum Master-Branche wechseln. Es gibt einen anderen Mechanismus, um ihre laufende Arbeit zu speichern.

Wenn sie an etwas arbeiten, dass halb fertig oder experimentell ist, können sie einen Befehl namens GetStash verwenden. Damit werden alle ihre aktuellen Änderungen gespeichert, ohne sie zu kommenten und dann in ein sauberes Arbeitsverzeichnis zurückversetzt. Wenn sie dann zu einem späteren Zeitpunkt wieder mit der Arbeit fortfahren möchten, können sie die Änderungen in diesem Stash entweder in ihr aktuelles Arbeitsverzeichnis einfügen oder dort anwenden.

Sie speichern also im Grunde genommen ihre aktuellen Änderungen, um sie zu einem späteren Zeitpunkt zu verwenden. Stashing ist also einfach eine praktische Sache und eine Alternative zum Kommenten ihres Codes, wenn sie noch nicht ganz bereit dazu sind. In unserem Fall sind wir mit der Erstellung unseres Features fertig. Jetzt möchten wir dieses Feature in den Masterbranche merken.

Wir checken jetzt den Masterbranche aus. Wenn wir dann GetMerge mit dem Namen unseres Feature Branche ausführen, wird der neueste Commit aus dem Feature mit dem Masterbranche zusammengeführt. Sie werden feststellen, dass die Commit ID für den Featurebranche und den Masterbranche identisch ist. Das war also ein ziemlich einfacher Anwendungsfall, aber beim Zusammenführen treten am ehesten Probleme auf, da sie möglicherweise an einem Featurebranche arbeiten und der Masterbranche Änderungen aufweist, die schließlich zu Zusammenführungskonflikten führen.

Links haben wir eine Codezeile, die wir in unserem Featurebranche implementiert haben. Und rechts haben wir eine neue Änderung, die während unserer Arbeit im Masterbranche vorgenommen wurde und die dieselbe Codezeile betrifft. Das Zusammenführen dieser Dateien ist also nicht sofort möglich, da Git nicht weiß, welche Änderung verwendet werden soll.

VS Code bietet ihnen einige Optionen, um diese Konflikte zu beheben. Sie können beispielsweise die aktuelle Änderung akzeptieren, die eingehende Änderung akzeptieren oder beides tun. Wenn ein Konflikt auftritt, sollten sie ihn zunächst überprüfen. Oftmals ist es dann am besten, den Merkel ganz abzubrechen und die Dateien manuell zu beheben.

Ich habe bereits erwähnt, dass es sich empfiehlt, viele kleine Kommis zu implementieren, da es einfacher ist, einen Konflikt bei einer Datei zu beheben als bei 100 Dateien. Im vorherigen Beispiel haben wir einen Featurebranche in den Masterbranche gemerkt. Wenn sie jedoch an einem Feature arbeiten, sollten sie den Masterbranche oft wieder in ihr Feature merken, um den neuesten Code zu erhalten.

Denn wenn sich etwas im Masterbranche ändert, bedeutet dies, dass jemand an derselben Stelle Code geschrieben haben könnte, an der sie gerade schreiben oder dass es warbrechende Änderungen gibt, die die Funktionsweise ihres Features beeinflussen. Wenn sie also über einen längeren Zeitraum an einem Feature arbeiten, sollten sie den Masterbranche immer dann merken, wenn sich etwas ändert oder vielleicht einmal täglich, wenn es sich um ein sehr aktives Repositori handelt.

Nun möchte ich Ihnen noch einen letzten Profitipp in Bezug auf das Merken geben. In einem Featurebranche werden oft viele verschiedene Komis erstellt. Diese Komis sind für das, was im Masterbranche passiert, ziemlich irrelevant. Hier siehst du, dass unser Featurebranche 3 Komis vor unserem Masterbranche liegt. Außerdem enthält er eine Reihe von Kommentaren über das Hinzufügen nutzloser Emojis zum Code.

Anstatt alle diese Komis im Masterbranche zusammenzuführen, kannst du sie beim Zusammenführen mit dem Squash-Fleck zu einem einzigen Komit zusammenfassen. Dadurch bleibt der Änderungsverlauf im Masterbranche übersichtlich. Alle ursprünglichen Komis im Featurebranche selbst bleiben jedoch erhalten. Wenn du mit dem Squash-Fleck zusammenführst, ändert sich der Head-Commit im Masterbranche nicht.

Frequently asked questions

Git ist ein Versionskontrollsystem und im Grunde ein System zur Verwaltung von Dateien.

Mit Git Stash werden alle aktuellen Änderungen gespeichert, ohne sie zu committen, um danach in ein sauberes Arbeitsverzeichnis zurückzukehren.