Git
Chapters ▾ 2nd Edition

A3.3 Appendix C: Git Kommandos - Einfache Snapshot-Funktionen

Einfache Snapshot-Funktionen

Für den grundlegenden Workflow der Erstellung von Inhalten und dem Committen in Ihren Verlauf gibt es nur wenige einfache Befehle.

git add

Der git add Befehl fügt, für den nächsten Commit, Inhalte aus dem Arbeitsverzeichnis der Staging-Area (bzw. „Index“) hinzu. Bei der Ausführung des Befehls git commit wird standardmäßig nur diese Staging-Area betrachtet, so dass mit git add festgelegt wird, wie Ihr nächster Commit-Schnappschuss aussehen soll.

Dieser Befehl ist ein unglaublich wichtiges Kommando in Git und wird in diesem Buch mehrfach erwähnt oder verwendet. Wir werden kurz auf einige der einzigartigen Verwendungen eingehen, die es gibt..

Wir stellen git add zunächst in Neue Dateien zur Versionsverwaltung hinzufügen vor und beschreiben ihn ausführlich.

Wir besprechen in Einfache Merge-Konflikte, wie man damit Konflikte beim Mergen löst.

Wir fahren in Interactive Staging damit fort, bestimmte Teile einer modifizierten Datei interaktiv zur Staging-Area hinzuzufügen.

Schließlich emulieren wir ihn in Baum Objekte auf einem unteren Level, so dass Sie sich vorstellen können, was er im Hintergrund bewirkt.

git status

Der git status Befehl wird Ihnen die verschiedenen Dateizustände in Ihrem Arbeitsverzeichnis und der Staging-Area anzeigen. Er zeigt welche Dateien modifiziert und nicht bereitgestellt und welche bereitgestellt (eng. staged), aber noch nicht committet sind. In seiner üblichen Form werden Ihnen auch einige grundlegende Tipps gegeben, wie Sie Dateien zwischen diesen Stufen verschieben können.

Wir behandeln status zunächst in Zustand von Dateien prüfen, sowohl in seinen grundlegenden als auch in seinen kompakten Formen. Im Buch wird so ziemlich alles angesprochen, was man mit dem Befehl git status machen kann.

git diff

Der git diff Befehl wird verwendet, wenn Sie Unterschiede zwischen zwei beliebigen Bäumen feststellen möchten. Das könnte der Unterschied zwischen Ihrer Arbeitsumgebung und Ihrer Staging Area (git diff an sich), zwischen Ihrer Staging Area und Ihrem letzten Commit (git diff --staged) oder zwischen zwei Commits (git diff master branchB) sein.

In Überprüfen der Staged und Unstaged Änderungen betrachten wir zunächst die grundsätzliche Anwendung von git diff und zeigen dort, wie man feststellen kann, welche Änderungen bereits der Staging-Area hinzugefügt wurden und welche noch nicht.

Wir verwenden ihn mit der Option --check in Richtlinien zur Zusammenführung (engl. Commits), um nach möglichen Leerzeichen-Problemen zu suchen, bevor wir committen.

Wir sehen, wie man die Unterschiede zwischen Branches mit der Syntax git diff A...B in Bestimmen, was eingeführt wird effektiver überprüfen kann.

Wir verwenden ihn, um Leerzeichen-Differenzen mit -b herauszufiltern und wie man verschiedene Stufen von Konfliktdateien mit --theirs, --ours und --base in Fortgeschrittenes Merging vergleicht.

Zuletzt verwenden wir ihn, um Submodul-Änderungen effektiv mit --submodule in Starting with Submodules zu vergleichen.

git difftool

Der Befehl git difftool startet ein externes Tool, um Ihnen den Unterschied zwischen zwei Bäumen zu zeigen, falls Sie einen anderen Befehl als das eingebaute git diff bevorzugen.

Das erwähnen wir nur kurz in Überprüfen der Staged und Unstaged Änderungen.

git commit

Der git commit Befehl erfasst alle Dateiinhalte, die mit git add zur Staging Area hinzugefügt wurden und speichert einen neuen permanenten Schnappschuss in der Datenbank. Anschließend bewegt er den Branch-Pointer der aktuellen Branch zu diesem hinauf.

Wir erklären zunächst die Grundlagen des Commitings in Die Änderungen committen. Dort zeigen wir auch, wie man mit dem -a Flag den Schritt git add im täglichen Arbeitsablauf überspringt und wie man mit dem -m Flag eine Commit-Meldung in der Kommandozeile übergibt, anstatt einen Editor zu starten.

In Ungewollte Änderungen rückgängig machen befassen wir uns mit der Verwendung der Option --amend, um den letzten Commit wieder herzustellen.

In Branches auf einen Blick gehen wir sehr viel detaillierter darauf ein, was git commit bewirkt und warum es das so macht.

In Signing Commits haben wir uns angesehen, wie man Commits kryptographisch mit dem -S Flag signiert.

Schließlich werfen wir einen Blick darauf, was der Befehl git commit im Hintergrund macht und wie er tatsächlich eingebunden ist in Commit Objekte.

git reset

Der git reset Befehl wird in erster Linie verwendet, um Aktionen rückgängig zu machen, wie man am Kommando erkennen kann. Er verschiebt den HEAD Pointer und ändert optional den index oder die Staging Area und kann optional auch das Arbeitsverzeichnis ändern, wenn Sie --hard verwenden. Bei falscher Verwendung der letzten Option kann mit diesem Befehl auch Arbeit verloren gehen, vergewissern Sie sich daher, dass Sie ihn verstehen, bevor Sie ihn verwenden.

Wir befassen uns zunächst mit der einfachsten Anwendung von git reset in Eine Datei aus der Staging Area entnehmen. Dort benutzen wir es, um eine Datei, die wir mit git add hinzu gefügt haben, wieder aus der Staging Area zu entfernen.

Wir gehen dann in Reset Demystified detailliert auf diesen Befehl ein, der sich ganz der Beschreibung dieses Befehls widmet.

Wir verwenden git reset --hard, um einen Merge in Aborting a Merge abzubrechen, wo wir auch git merge --abort verwenden, das eine Art Wrapper für den git reset Befehl ist.

git rm

Der git rm Befehl wird verwendet, um Dateien aus dem Staging-Bereich und dem Arbeitsverzeichnis von Git zu entfernen. Er ähnelt git add dahingehend, dass er das Entfernen einer Datei für den nächsten Commit vorbereitet.

Wir behandeln den Befehl git rm in Dateien löschen ausführlich, einschließlich des rekursiven Entfernens von Dateien und des Entfernens von Dateien aus der Staging Area, wobei sie jedoch, mit --cached, im Arbeitsverzeichnis belassen werden.

Die einzige andere abweichende Verwendung von git rm im Buch ist in Objekte löschen beschrieben, wo wir kurz die --ignore-unmatch beim Ausführen von git filter-branch verwenden und erklären, was es einfach nicht fehlerfrei macht, wenn die Datei, die wir zu entfernen versuchen, nicht existiert. Das kann bei der Erstellung von Skripten nützlich sein.

git mv

Der git mv Befehl ist ein schlanker komfortabler Befehl, um eine Datei zu verschieben und dann git add für die neue Datei und git rm für die alte Datei auszuführen.

Wir beschreiben diesen Befehl nur kurz in Dateien verschieben.

git clean

Der Befehl git clean wird verwendet, um unerwünschte Dateien aus Ihrem Arbeitsverzeichnis zu entfernen. Dazu kann das Entfernen von temporären Build-Artefakten oder das Mergen von Konfliktdateien gehören.

Wir behandeln viele der Optionen und Szenarien, in denen Sie den clean-Befehl verwenden könnten in Bereinigung des Arbeitsverzeichnisses.