Einführung in Git

Veröffentlicht: 2022-06-30

Als ich anfing, Websites zu erstellen, habe ich „Cowboy-codiert“, was bedeutet, dass ich Dateien oft live auf dem Server bearbeitet habe. Ich brauchte nur ein paar kaputte Seiten, um zu erkennen, dass dies eine schreckliche Idee war. Dann fing ich an, Websites lokal auf meinem Computer zu erstellen. Mehr als einmal habe ich eine lokale Datei nur bearbeitet, um die Datei an den falschen Ort in meinem FTP-Client zu migrieren. Gelegentlich bedeutete das, dass ich eine Datei überschrieb, die ich nicht reparieren konnte, ohne nach einer Sicherungskopie zu suchen, die ich hoffentlich behalten hatte.

Wenn Sie immer noch mit FTP zu tun haben und Ihre Dateien nicht zurücksetzen können, ist es an der Zeit, sich mit der Verwendung von Git für die Versionskontrolle vertraut zu machen.

Was ist Versionskontrolle?

Ein Versionskontrollsystem (VCS) ist eine Art von Software, die Softwareentwicklern hilft, Änderungen an ihrem Code im Laufe der Zeit zu verwalten. Ein gutes VCS-System verfolgt jede Änderung im Code, die vorgenommen wird. Das bedeutet, wenn Sie etwas kaputt machen, können Sie zu einer früheren Version des funktionierenden Codes zurückkehren, ohne zu versuchen, auf „Rückgängig“ zu klicken, bis die Dinge funktionieren.

In einer Teamumgebung hilft Ihnen ein VCS bei der Arbeit mit verschiedenen Mitgliedern, indem es Ihnen Tools zur Verfügung stellt, mit denen Sie Änderungen im Code zusammenführen können, wenn verschiedene Mitglieder Dateien aktualisieren.

Eines der Dinge, die ich in Git mache, ist das Erstellen eines neuen Zweigs für jedes Feature, das ich baue. Das bedeutet, dass ich die Änderungen verfolgen kann, die ich an einem Zweig vornehme, aber dennoch zum aktuellen Stand der Site zurückkehren kann, indem ich zum Hauptzweig zurückkehre. Wir werden später mehr über diesen Workflow sprechen.

Was ist Git?

Git ist ein Versionskontrollsystem, aber es ist nicht das einzige. Das Haupt-WordPress-Repository wird über SVN betrieben, obwohl Sie auch eine Git-Kopie finden können. Es gibt auch Mercurial, Visual Source Safe, VESTA und viele andere Optionen.

Trotz all dieser Optionen wird Git von fast allen verwendet, also ist es die Versionskontrolle, über die wir heute lernen werden.

Grundlegende Git-Begriffe und -Befehle

Bevor wir uns mit der Funktionsweise von Git befassen, müssen wir einige Begriffe verstehen. Wir werden nur die Begriffe behandeln, denen Sie regelmäßig begegnen werden.

Eine vollständigere Liste aller Dinge, denen Sie begegnen könnten, finden Sie hier Git-Referenz oder das vollständige Liste der Git-Befehle .

Hinzufügen : Wenn Sie Änderungen an Ihrem Code vorgenommen haben, verwenden Sie den Befehl git add , um die Änderungen hinzuzufügen, damit sie festgeschrieben werden können.

Zweig : Ein Zweig ist eine Version Ihres Repositorys, die sich vom Hauptarbeitsprojekt unterscheidet. Alle Repositories verfügen über einen Haupt- oder, bei älteren Projekten häufiger, einen Master-Branch. Kürzlich haben Git und Github begonnen, den Standard-Branch-Namen aufgrund der historischen Probleme mit dem Wort Master von master in main zu ändern. Mit Git 2.28 können Sie auch Ihren Standard-Branch-Namen für jedes neue Projekt festlegen.

Checkout : Sie verwenden den Befehl git checkout , um zwischen verschiedenen Branches in einem Repository zu wechseln. Wenn Sie diesen Befehl verwenden, ändert Git den Inhalt der Dateien oder fügt Dateien hinzu oder entfernt Dateien, die sich zwischen Zweigen unterscheiden.

Klonen : Der Befehl git clone wird verwendet, um eine Kopie eines Repositorys aus dem Quell-Repository zu erstellen. Sie würden diesen Befehl verwenden, um eine lokale Kopie eines Remote-Repositorys zu erhalten, damit Sie am Code arbeiten können.

Commit : Nachdem Sie git add verwendet haben, müssen Sie git commit verwenden, um den Status Ihrer Dateien in git speichern zu können.

init : git init erstellt für Sie ein leeres Repository mit allen grundlegenden Dateien, die Git zum Betrieb benötigt.

Zusammenführen : Nachdem Sie Änderungen an einem Zweig vorgenommen und diese hinzugefügt und festgeschrieben haben, verwenden Sie den Befehl git merge, um diese Änderungen in andere Zweige zu migrieren.

Origin : Dies ist der Standardname für die primäre Version des Repositorys. Normalerweise ändere ich meine jedoch so, dass sie beschreibender als die Herkunft ist. Wenn ich mit Github arbeite, ändere ich die Einstellungen in Git so, dass Origin zu Github wird. Das hilft mir, einen klaren Kopf zu behalten.

Push : Aktualisiert den Remote-Zweig mit den Commits, die in Ihrer lokalen Version des Repositorys vorgenommen wurden.

Repository : Dies kann auch als „Repo“ bezeichnet werden und ist ein Verzeichnis aller Dateien sowie ein Git-Verlauf der Änderungen an diesen Dateien.

Status : git status zeigt dir den aktuellen Status deines Arbeits-Repositorys.

.gitignore : Dies ist eine versteckte Datei, die Muster von Dateien enthält, die Git nicht nachverfolgen wird. Wenn Sie .DS_Store in Ihren .gitignore Dateien haben, werden alle lästigen Dateien ignoriert, die macOS oft in Ordnern ablegt.

Git-Repositories hosten

Eine andere Sache, die Sie verstehen sollten, bevor Sie eintauchen, ist, dass Sie zwar keinen entfernten Standort für Ihr Repository benötigen, aber das Fehlen eines solchen einige der Vorteile der Verwendung von Git schmälern wird. Ohne ein Remote-Repository, das woanders gehostet wird, haben Sie kein Backup Ihres Codes, wenn Ihr Computer stirbt oder gestohlen wird.

Github und Bitbucket sind zwei der beliebtesten Orte, um Ihre Git-Repositories zu hosten, da sie größtenteils kostenlos sind und Sie private Repositories haben können. Das bedeutet, dass sich Ihr Code auf dem Server einer anderen Person befindet. Wenn Ihnen diese Idee nicht gefällt, können Sie Gitlab auf Ihrem Server verwenden, um Repositories zu hosten.

Git installieren

Unter macOS besteht die einfachste Methode zum Installieren von Git darin, Terminal zu öffnen und Git einzugeben, wodurch Sie aufgefordert werden, Xcode-Befehlszeilentools herunterzuladen, um Git zu installieren. Sobald dies abgeschlossen ist, können Sie git –version ausführen, um zu sehen, welche Version von git Sie haben. Wenn das nicht funktioniert, gibt es ein paar andere Möglichkeiten, Git unter macOS zu installieren.

Für Windows-Benutzer können Sie Git mit dem offiziellen Git-Installationsprogramm installieren. Git wird auch mit der Github Desktop-Anwendung geliefert, über die wir später sprechen werden.

Wenn Sie unter Linux arbeiten, sollte git mit Ihrem Paketmanager gebündelt sein, oder Sie können sich diese Möglichkeiten ansehen, um git unter Linux zu installieren.

Git-Standardwerte konfigurieren

Sobald Sie Git installiert haben, müssen Sie es so konfigurieren, dass jeder Commit Ihren Namen und Ihre E-Mail-Adresse verwendet und Nachrichten festschreibt, um Ihren bevorzugten Editor zu verwenden, um alle Kommentare einzugeben, die mit dem Commit einhergehen. Wir werden uns ansehen, wie Sie diese in macOS über die Terminal-Anwendung festlegen können.

git config --global user.name "Your Name" den Namen fest, der zu jedem Commit auf Ihrem Computer gehört.

git config --global user.email "[email protected]" die E-Mail-Adresse fest, die mit jedem von Ihnen vorgenommenen Commit verknüpft ist.

git config --global core.editor vim wird zum Standard-Editor für Git vim. Obwohl ich vim liebe, ist es nicht der Editor, den jeder liebt. Wenn Sie Atom verwenden, verwenden Sie git config –global core.editor „atom –wait“ oder git config –global core.editor „subl -n -w“ für Sublime Text.

Wenn Sie sich für IDEs interessieren, können Sie mit Visual Studio Code auch direkt aus der Anwendung heraus mit Git arbeiten, wenn Sie möchten, ebenso wie PHPStorm .

Einrichtung eines Repositorys

Nachdem wir git installiert und konfiguriert haben, starten wir ein einfaches Repository. Öffnen Sie Ihr Terminal und erstellen Sie einen Ordner namens test-repository, indem mkdir test-repository eingeben. Geben Sie dann cd test-repository ein, um in Ihr Test-Repository-Verzeichnis zu wechseln, und geben Sie git init ein.

An diesem Punkt haben Sie ein verstecktes Verzeichnis in Ihrem Ordner namens .git . Da es sich um eine versteckte Datei handelt, müssen Sie ls -a in Terminal eingeben, um versteckte Dateien aufzulisten.

Verwenden von git add

Lassen Sie uns nun eine Datei erstellen, indem touch test.txt in Terminal eingeben. Geben Sie als Nächstes git status ein, um die gerade hinzugefügte Datei anzuzeigen.

Wie Sie sehen können, wird die neu erstellte Datei rot angezeigt und teilt uns mit, dass ihr Status nicht verfolgt wird. Das bedeutet, dass Git die Datei sieht, aber keine Aufzeichnungen darüber hat.

Geben Sie git add test.txt ein, um Git anzuweisen, diese Datei bereitzustellen, geben Sie dann erneut git status ein und Git sollte Ihnen mitteilen, dass es über eine geänderte Datei Bescheid weiß.

Dateien an Git übergeben

Nachdem wir unsere Datei hinzugefügt haben, müssen wir sie festschreiben, damit Git den Status der Datei speichert. Wir können dies in einer einzigen Zeile tun, ohne unseren Standardeditor mit dem folgenden Befehl zu öffnen.

git commit -m 'adding our first file'

Das Flag -m teilt git mit, dass die Wörter in einfachen Anführungszeichen der Kommentar sind, der zum Befehl gehört.

Jetzt enthält unser Repository eine einzelne Datei mit dem Status gespeichert.

Erstellen Sie einen Zweig

Die wirkliche Stärke von Git zeigt sich, wenn Sie mit dem Verzweigen beginnen. Angenommen, Sie möchten eine Menge in Ihre test.txt-Datei schreiben, sind sich aber nicht sicher, ob Sie sie am Ende behalten werden, und möchten sicherstellen, dass Sie zu der derzeit leeren Datei zurückkehren können. Wir können dies mit einem Zweig tun.

Um einen Branch zu erstellen, können wir git checkout -b new-branch . Dies ist eine Abkürzung, um einen Zweig zu erstellen, während wir den Zweig auschecken, und ich verwende ihn jedes Mal, wenn ich einen Zweig erstellen muss.

Öffnen Sie nun unsere test.txt -Datei, fügen Sie Text hinzu und speichern Sie sie. Verwenden Sie dann git add und git commit wie oben, um den Status der Datei zu speichern.

Geben Sie als Nächstes git checkout master ein, um zum standardmäßigen Hauptzweig zurückzukehren, und sehen Sie sich dann den Inhalt Ihrer test.txt -Datei erneut an. Sie werden feststellen, dass der gesamte von Ihnen eingegebene Text entfernt wurde. Git würde sogar eine neue Datei löschen, die sich nur in einem Zweig befand, obwohl es eine Aufzeichnung darüber führt, damit sie nicht weg ist.

Einen Zweig zusammenführen

Jetzt lieben wir, was immer wir in unsere Datei geschrieben haben, also integrieren wir es in unseren Hauptzweig. Stellen Sie sicher, dass Sie sich im Hauptzweig befinden, und geben Sie git merge new-branch ein, um Ihre Änderungen zu integrieren.

Wenn Sie sich jetzt den Inhalt von test.txt , finden Sie Ihre Änderungen im Hauptzweig so vor, wie Sie sie verlassen haben.

Git mit WordPress verwenden

Obwohl das obige Beispiel extrem einfach war, ist das alles, was Sie brauchen, um mit Git in Ihren Projekten zu beginnen. Lassen Sie uns also genau darüber sprechen, wie Sie ein WordPress-Projekt mit Git erhalten.

Die erste Überlegung ist, welche Ebene in Ihrer Ordnerhierarchie das Stammverzeichnis Ihres Git-Repositorys sein sollte. Wenn Sie ein Design erstellen, können Sie den Designordner zu Ihrem Repository machen. Die gleiche Logik gilt, wenn Sie ein Plugin erstellen.

Normalerweise arbeite ich gleichzeitig an Themes und Plugins, daher verwende ich oft den wp-content-Ordner als Speicherort für mein Repository. Wenn ich dies tue, stelle ich sicher, dass ich den Uploads-Ordner ignoriere, damit ich nicht alle Bilder und hochgeladenen Dateien zum Repository hinzufüge. Sie verstopfen das Repository und können Git verlangsamen, weil es nicht gut darin ist, Bilddateien zu komprimieren.

Wenn ich einen gesamten Bereitstellungsworkflow handhabe, mache ich den WordPress-Stammordner zum Hauptspeicherort für mein Git-Repository. Dann stelle ich sicher, dass ich wp-content/uploads uploads und wp-config.php zu meiner .gitignore -Datei hinzufüge. wp-config.php ist für jede WordPress-Installation spezifisch, daher möchte ich nicht, dass es über einer anderen Version der Datei bereitgestellt wird, was dazu führen würde, dass die Website nicht mehr funktioniert.

Sie können eine Kopie der .gitignore -Datei sehen, die ich als Ausgangspunkt für jedes Projekt verwende. Es wird davon ausgegangen, dass Sie wp-content als Stammverzeichnis Ihres Git-Repositorys verwenden, daher ändere ich einige der Ignoriermuster, wenn ich mich im Stammverzeichnis von WordPress befinde.

Git-GUI-Anwendungen

Während wir die Grundlagen über die Befehlszeile für Git behandelt haben, ist nicht jeder mit der Befehlszeile vertraut, ich weiß, dass ich es nicht war, als ich anfing, Git zu verwenden. Selbst jetzt möchte ich gelegentlich eine visuelle Darstellung dessen sehen, was Git tut, bevor ich Änderungen an meinem Setup vornehme.

Glücklicherweise gibt es mehrere großartige GUI-Clients für Git, die Sie verwenden können, also lassen Sie uns einige hervorheben.

Github-Desktop (Windows/macOS)

Ein guter Ausgangspunkt, wenn Sie sich Git-GUI-Clients ansehen, ist die Github-Desktop-Anwendung.

Viele Open-Source-Projekte verwenden Github als ihr Code-Repository für die Zusammenarbeit und verwenden den Standard-Github-Flow, um ihre Arbeit zu erledigen. Der Github Desktop-Client wurde entwickelt, um Ihnen bei der Handhabung dieses Ablaufs zu helfen, sodass das Erstellen von Pull-Anforderungen einfacher wird.

Wenn Sie sich nicht sicher sind, was ein Pull-Request ist, sehen Sie sich das an Githubs Dokumentation zu Pull Requests

Leider gibt es für Linux-Benutzer keine offizielle Github Desktop-Anwendung, aber es gibt einen Fork von Github Desktop, der auf Linux-Systemen installiert wird.

Git-Tower (Windows/macOS)

Die von mir verwendete Git-GUI ist Git Tower. Git Tower ist für macOS und Windows verfügbar. Als ich mit Git anfing, fand ich es viel einfacher, Konflikte zu lösen und zu sehen, was zwischen Dateien in dieser GUI anders war.

Arbeitskopie (iOS/iPadOS)

Wenn Sie wie ich hauptsächlich mit einem iPad arbeiten, sollten Sie sich Working Copy ansehen. Working Copy ist ein voll ausgestatteter Git-Client, der mit iOS und iPadOS funktioniert. Es verfügt sogar über eine Shortcuts-Integration, sodass Sie Teile Ihres Git-Workflows automatisieren können.

Einpacken

Auch wenn wir heute einen Großteil Ihres Git-Wissens abgedeckt haben, gibt es keine Möglichkeit, dass ein einziger Blogbeitrag zu diesem Thema erschöpfend sein könnte. Sie können Ihr Lernen mit der Nexcess-Hilfedokumentation sowie diesen hervorragenden Ressourcen fortsetzen.

  • Git-Dokumentation
  • Pro Git-Buch
  • Laracasts Git-Lektion
  • Gits eigene externe Ressourcen

Indem Sie Git zur Verwaltung Ihrer Kundenprojekte verwenden, ersparen Sie sich Kopfschmerzen, da Sie Änderungen rückgängig machen oder ganze Branches verwerfen können, wenn Sie die geleistete Arbeit nicht mehr benötigen. Kein Strg + Z mehr, bis Sie denken, dass Sie weit genug zurückgerollt sind, Git wird alles für Sie verfolgen.