Eine Einführung in Git

Veröffentlicht: 2022-06-30

Ganz gleich, ob Sie eine brandneue Website erstellen, ein Design oder Plugin entwickeln oder fortschrittliche kontinuierliche Integrations- und Bereitstellungsstrategien einrichten, Sie werden mit Code arbeiten.

Unter jeder Website wird Code ausgeführt – egal, ob Sie WordPress, WooCommerce, Drupal, Magento, NextJS oder sogar handcodiertes HTML verwenden. Es gibt Sätze von Dateien, die benötigt werden, um jede Seite zu rendern und Inhalte für die Welt anzuzeigen.

Was Sie schnell feststellen, ist, dass Sie eine Möglichkeit brauchen, Codeänderungen im Laufe der Zeit zu verfolgen. Sie müssen wissen, welche Änderungen in der aktuellsten Version einer Datei enthalten sind und wer diese Änderungen vorgenommen hat.

Hier kommt Git ins Spiel. Lesen Sie weiter, um mehr über Git, die Arbeit mit Remote-Git-Repositories und mehr zu erfahren.

Git verstehen

Git ist ein Versionskontrollsystem, das es Entwicklern und allen anderen, die mit Dateien arbeiten, ermöglicht, auf einfache Weise Versionen ihrer Änderungen zu erstellen und zu speichern, einen Verlauf dieser Änderungen anzuzeigen und diese Änderungen zwischen Geräten und Systemen auszutauschen und gleichzeitig eine Möglichkeit zu bieten um diese Änderungen rückgängig zu machen, falls etwas schief geht.

Eine kurze Geschichte

Bereits 2005 erstellte ein Team von Entwicklern ein Projekt namens Linux, das kostenlose Open-Source-Betriebssystem. Sie brauchten eine Möglichkeit, Änderungen auf einfache Weise unter Hunderten von Mitwirkenden zu kommunizieren. Ursprünglich hatten sie einzelne Patches weitergegeben, die den aktualisierten Code enthielten, aber dies erwies sich an vielen Fronten als problematisch, insbesondere wenn es darum ging, die „wahre“ und neueste Version eines bestimmten Satzes von Änderungen zu ermitteln.

Frustriert von diesen Problemen veranlasste das Linux-Projekt Linus Torvald dazu, eine ziemlich neuartige Idee für ein Projekt zu implementieren, um die gesamte Codebasis zwischen Entwicklern zu teilen und "Schnappschüsse" ihrer Änderungen zu machen, sogenannte Commits, die geteilt und mit jeder anderen Kopie von zusammengeführt werden konnten den Code, überall auf der Welt. Dies half sofort bei der Kommunikation, da alle Projektänderungen als eine einzige Historie angezeigt werden konnten.

Diese Methode zum Erfassen dieser Schnappschüsse ist Git, das schnell ein Eigenleben entwickelte und seitdem unabhängig vom Linux-Projekt entwickelt wird.

Ein Diagramm der Änderungen

Konzeptionell können Sie sich Git als ein Diagramm von Knoten vorstellen, wobei jeder Knoten eine Momentaufnahme des gesamten Projekts zu einem bestimmten Zeitpunkt darstellt. Das Git-Buch drüben auf git-scm.com beschreibt die Struktur eines Snapshots.

Git speichert Daten als Momentaufnahmen des Projekts im Laufe der Zeit

Diese Kette von Schnappschüssen erstellt im Laufe der Zeit ein Diagramm, wobei die neueste Version am Anfang oder ganz oben in Ihrem Änderungsverlauf steht. Jeder Snapshot wird in Git als „Commit“ bezeichnet.

Hier ist ein kurzer Blick darauf, wie ein Git-Projekt aussieht, wenn Sie die letzte Änderung oben in der Grafik platzieren. Hinweis: Dieses Beispiel verwendet die GitKraken Git GUI, um den Graphen zu visualisieren.

Beispiel für ein Git-Diagramm

Erstellen des Git-Diagramms

Git erstellt dieses Änderungsdiagramm, das auch als Git-Verlauf bezeichnet wird, durch einen Prozess des Festschreibens von Änderungen. Bevor Sie Änderungen festschreiben können, müssen Sie Git jedoch ausdrücklich mitteilen, was Sie zu diesem Snapshot hinzufügen möchten, oder festschreiben, wie es in Git richtig bezeichnet wird.

Wenn Sie lokal arbeiten, befinden sich alle Änderungen, die Sie in Ihrem Projekt speichern, in Ihrem "Arbeitsverzeichnis". Git kann diese Änderungen sehen, weiß aber noch nicht, welche Änderungen Sie festschreiben möchten. Sie müssen Git explizit mitteilen, welche Änderungen Sie festschreiben möchten, indem Sie einen Befehl namens „git add“ verwenden, um diese spezifischen Dateien zum „Staging-Bereich“ von Git hinzuzufügen.

Sobald Sie die Dateiänderungen haben, die Sie an das Diagramm der Projekt-Snapshots übertragen möchten, können Sie den Befehl „Git commit“ verwenden, um diesen Snapshot dauerhaft auf dem Diagramm zu erstellen.

Die Git-Schritte zum Hinzufügen und Festschreiben

Zurück in der Zeit

Einer der Vorteile von Git und der Verfügbarkeit Ihres gesamten Projektverlaufs besteht darin, dass Sie jederzeit zurückgehen und alle Änderungen rückgängig machen können.

Wenn der letzte Commit, den Sie vorgenommen haben, etwas kaputt macht oder Sie Ihre Meinung über das, was Sie getan haben, ändern, können Sie einen „Git-Revert“ durchführen, um den Git-Commit rückgängig zu machen. Dadurch wird ein neuer Commit im Diagramm erstellt, der die gerade vorgenommenen Änderungen einfach rückgängig macht.

Wenn Sie in der Zeit zurückspringen und es so aussehen lassen möchten, als hätten Sie nie einen Commit gemacht, können Sie dies mit „Git reset“ tun.

Die Macht des Verzweigens und Zusammenführens in Git

Eine der mächtigsten Funktionen, die Git uns bietet, ist die Fähigkeit, parallele alternative Realitäten zu erstellen. Nicht wirklich.

Da Sie ein Diagramm der Commits im Laufe der Zeit erstellen, können Sie von jedem Punkt in Ihrem Verlauf aus parallele Commits-Linien erstellen, die als Verzweigungen bezeichnet werden. Ein neu erstellter Git-Zweig ist unabhängig von der Haupthistorie, d. h. Sie können alle gewünschten Änderungen vornehmen und Ihre andere Arbeit wird nicht beeinträchtigt. Die Hauptzeitachse ist ebenfalls ein Zweig und wird am häufigsten als „Haupt“- oder „Master“-Zweig bezeichnet. Neue Zweige und andere Zweige als Hauptzweige werden allgemein als „Feature-Zweige“ bezeichnet.

Nachdem Sie die Änderungen an Ihrem Feature-Branch vorgenommen haben, können Sie alle Änderungen auf den Main-Branch anwenden, indem Sie einen Git-Merge durchführen.

Es ist ein großer Vorteil, auf diese Weise zu arbeiten. Ein Feature-Zweig isoliert die Codeänderungen, sodass Sie sicher sein können, dass der Hauptzweig sicher ist, wenn Sie Fehler einführen. Durch das Arbeiten in Zweigen wird auch der Hauptzweig freigegeben, falls Sie ein Update oder einen Sicherheitsfix anwenden müssen, ohne die laufende Entwicklungsarbeit zu unterbrechen.

Durch Git-Merging können Sie auch Änderungen aus dem Hauptbranch in einen Feature-Branch ziehen. Auf diese Weise können Sie sicherstellen, dass am Hauptzweig vorgenommene Aktualisierungen weiterhin mit Ihren vorgeschlagenen Änderungen funktionieren, bevor Sie versuchen, sie mit „Hauptzweig“ zusammenzuführen.

Wenn Sie mit einem Team arbeiten, kann eine Git-Branching-Strategie sicherstellen, dass Ihr Team Änderungen gründlich testen kann, bevor sie in die Produktion gelangen, und eine unkomplizierte Möglichkeit bieten, den Prozess zu verwalten.

Arbeiten mit Remote-Repositories in Git

Eines der Hauptziele von Git ist es, den Austausch von Code mit Menschen auf der ganzen Welt zu vereinfachen. In Git integriert ist der Begriff eines Remote-Repositorys.

Ein Git-Repository ist der gesamte Projektordner, in dem Sie Ihre Arbeit speichern, und das, was Git im Laufe der Zeit verfolgt. Jedes Repository kann mit dem Git-Clone-Befehl geklont und unbegrenzt oft geteilt werden, wodurch Git sehr skalierbar wird.

Ein weiterer Aspekt, der Git sehr skalierbar macht, ist, dass Sie, wenn Sie ein Dokument ändern, keine völlig neue Kopie dieses Dokuments speichern müssen. Änderungen werden als kleine Informationspakete gespeichert, die als „Deltas“ bezeichnet werden, und nur die individuell geänderten Zeilen einer Datei und ein paar Daten über die Änderung müssen von Git gespeichert oder geteilt werden. Deltas sind sehr leicht, oft nur wenige Bytes groß. Wenn Sie beispielsweise eine einzelne Zeile in einem 100-KB-Dokument ändern, beträgt das Delta nur etwa 20 Bytes.

Um alles in Einklang und konsistent über alle Kopien eines Repositorys hinweg zu halten, müssen Sie einfach festlegen, welche Kopie, die sich auf welchem ​​Computer befindet, die „echte“ Kopie des Projekts ist, und dann sicherstellen, dass Ihre Commits zu dieser Kopie gelangen.

Das funktioniert auch andersherum. Wenn Sie mit anderen zusammenarbeiten, können Sie deren Änderungen in Ihre lokale Kopie des Repositorys ziehen, um sicherzustellen, dass Ihre lokale Kopie des Projekts auf dem neuesten Stand ist.

Das Git-Modell zum Arbeiten mit Remote-Repositories

Es gibt eine Reihe von Unternehmen, die die Zusammenarbeit an Remote-Repositories extrem einfach und überschaubar machen. Plattformen wie GitHub, GitLab und BitBucket bieten Online-Hosting- und Collaboration-Tools für Git-Repositorys. Es gibt viele Millionen Git-Repositories online, die von Millionen von Entwicklern verwaltet werden, und Git verfolgt jede einzelne Quelle der Wahrheit, egal wie viele Leute zusammenarbeiten.

Was nicht in Git gespeichert werden sollte

Lassen Sie uns darüber sprechen, was Sie wahrscheinlich nicht mit Git machen sollten. Während Git hervorragend darin ist, Code zu teilen und Änderungen im Laufe der Zeit zu verfolgen, gibt es einige Jobs, die für das Modell nicht gut geeignet sind. Glücklicherweise gibt uns Git eine praktische Möglichkeit, Dinge zu ignorieren, eine sogenannte „.gitignore“-Datei.

Wenn eine „.gitiginore“-Datei vorhanden ist, überprüft Git diese, um festzustellen, ob diese Elemente überhaupt überwacht werden sollten. Innerhalb einer „.gitiginore“ können Sie einzelne Dateinamen, ganze Verzeichnisse oder ganze Dateitypen auflisten. Wenn du zum Beispiel alle .png- und .jpg-Dateien und deinen gesamten „wp-content/uploads“-Ordner ausschließen möchtest, würdest du einfach in deine „.gitiginore“-Dateien schreiben:

 *.png *.jpg wp-content/uploads

Warum Mediendateien von Git ausschließen?

Git speichert Snapshots eines Projekts und gibt nur die „Deltas“ weiter. Wenn es sich bei der betreffenden Datei jedoch um einen „Blob“ von Daten handelt, z. B. ein Bild, ein Video oder eine andere Binärdatei, wird durch jede Änderung der Datei ein ganz neuer Datenblock erstellt. Git muss sich dann den Zustand sowohl des alten Blobs als auch des neuen Blobs merken, wodurch dem Repository viel unnötige Größe hinzugefügt wird. Dies baut sich im Laufe der Zeit auf und Repositories werden schnell unhandlich, wenn Sie die leichten Vorteile von Git verlieren.

Ob Sie es glauben oder nicht, Sie möchten vielleicht keine Änderungen im WordPress-Kern selbst verfolgen. Dafür gibt es mehrere Gründe.

Erstens gibt es bei jedem CMS ein altes Sprichwort: "Don't hack core!" Es sollte nichts geben, was Sie im Kern von WordPress ändern, das nachverfolgt werden muss. Alle Updates müssen von WordPress selbst kommen und wenn Sie eine frühere Version wünschen, können Sie das einfach bei der Installation angeben. Sie können durchaus eine gesamte WordPress-Installation in Git speichern, aber in bestimmten Situationen ist dies nicht sehr sinnvoll. Sie möchten wirklich nur Änderungen an dem Code verfolgen, den Sie manipulieren, wie z. B. Ihre benutzerdefinierten Plugins und untergeordneten Themen. Es ist eine wirklich gute Idee, sich bei Ihrem Hosting-Provider nach Rat zu diesem Thema zu erkundigen.

Zweitens, wenn Sie vorhaben, wieder zu WordPress beizutragen, werden Sie feststellen, dass es tatsächlich durch ein älteres Versionskontrollsystem namens SVN gepflegt wird. Dieses Modell erfordert eine zentrale Serverinfrastruktur und ist im Vergleich zu Git viel weniger beliebt, aber andererseits ist WordPress älter als Git. Die Arbeit mit dem SVN-Patch-System ist ein wenig anders, und Sie sollten deren Dokumentation zu Rate ziehen, um mehr darüber zu erfahren.

Fazit

Hoffentlich haben Sie jetzt ein besseres Verständnis dafür, was Git ist und wie es für die Arbeit mit dem Code Ihrer Website genutzt werden kann. Git kann für alle Dateien verwendet werden, die Sie im Laufe der Zeit ändern werden, auch wenn es sich nicht um Computercode handelt.

Git bezeichnet seine Zielbenutzer als „Wissensarbeiter“, ein alter Begriff, der von IBM entlehnt wurde. Von Notizen auf Ihrem Desktop über Rezepte bis hin zu ganzen Büchern bietet Ihnen Git eine Möglichkeit, Ihre Arbeit besser zu organisieren und sich selbst eine solide Spur darüber zu hinterlassen, warum Sie jede Änderung vorgenommen haben und wann sie vorgenommen wurde.

Die Fähigkeit, in der Zeit zurückgehen und Ihre Änderungen sehen zu können, kombiniert mit der Fähigkeit, in unbegrenzten parallelen Universen mit Verzweigungen und Zusammenführungen zu arbeiten, macht Git zu einem unverzichtbaren Werkzeug für jeden, der an Code arbeitet. Git ist auch die primäre Art und Weise, wie Teams an Codeprojekten zusammenarbeiten.

Git kann kostenlos verwendet werden und die meisten Git-GUIs, wie GitKraken, haben kostenlose Versionen. Es gibt keinen Grund, warum Sie Git nicht verwenden sollten, um Ihre Arbeit zu verfolgen, also „Git“ dazu!

Ähnliche Resourcen

- Lokale WordPress-Entwicklung mit XAMPP

- Erweiterte Git-Nutzung und Workflows

- Git-Hooks

- Was ist eine Dev-Site?

- Caching für WordPress