Verstauen eine Datei in Git
Wenn wir an einem großen Projekt arbeiten, stoßen wir manchmal auf Situationen, in denen unser Arbeitsstatus aus verschiedenen Gründen chaotisch wird.
In diesem Fall müssen wir die Zweige für eine Weile wechseln, um besser zu funktionieren. In dieser Situation könnten wir mit dem Problem konfrontiert werden, dass wir uns nicht auf die halbfertige Arbeit festlegen müssen, nur um diesen Punkt später angehen zu können.
Die Lösung für dieses Problem ist der Befehl git stash
. Mit dem Befehl git stash
können wir den Zustand unseres Arbeitsverzeichnisses vorübergehend in der temporären Datei speichern.
, können wir sagen, dass wir dann Branches wechseln, unsere gewünschte Arbeit festschreiben und danach mit dem Befehl git stash
zu der Arbeit zurückkehren können, die wir auf Eis gelegt haben.
Mit anderen Worten, wir können sagen, dass der Befehl git stash
sehr einfach ist; Es speichert den aktuellen Zustand unseres Arbeitsverzeichnisses und den Index in unserer Stash-Datei. Das bedeutet, dass keine Änderungen am Index oder am Arbeitsverzeichnis festgeschrieben werden.
Stashing nimmt den irrelevanten Zustand unseres Arbeitsverzeichnisses, d. h. unsere modifizierten nachverfolgten Dateien und bereitgestellten Änderungen, und speichert ihn auf einem Stack-Datentyp mit unvollendeten Änderungen, die Sie später auch mithilfe eines anderen Zweigs erneut anwenden können.
Während wir arbeiten, können wir viele Änderungen vornehmen und viele schmutzige Dateien hinzufügen, aber wenn wir stashen, speichert Git nur einen einzigen, sauberen Snapshot unseres Arbeitsverzeichnisses.
Wir sollten wissen, dass das Stashing einer Datei bedeutet, dass wir den Inhalt dieser Datei in den stash
verschieben. Wenn wir die Datei erneut ändern, wird sie im stash
und nicht im Arbeitsverzeichnis geändert. Wir sollten die Datei also nicht ändern, nachdem wir sie gespeichert haben.
Wir sollten den Befehl stash save
verwenden, um eine Datei zu stashen. Wenn wir alle Änderungen im Arbeitsverzeichnis stashen wollen, sollten wir den Befehl stash save --all
verwenden. Wenn wir eine Datei aus dem Stash entfernen möchten, sollten wir den Befehl stash pop
verwenden.
Schritte zum Stashing nur einer Datei in Git
Nehmen wir an, wir haben sieben Dateien und wir haben sie alle geändert. Jetzt werden wir sehen, welche Schritte befolgt werden müssen, um nur eine von sieben Dateien im aktuellen Repository zu speichern.
-
Anzeigen der geänderten Dateien
Zuerst führen wir den Befehl
git status
aus, um die Liste der geänderten Dateien zu untersuchen.git status
-
Staging-Dateien
Nachdem wir die Liste untersucht haben, führen wir den Befehl
git add
aus, um alle sieben Dateien bereitzustellen:git add .
-
Unstaging der Datei
Nach dem Staging aller Dateien ist der nächste Schritt das Unstaging von
file2
mit Hilfe des Befehlsgit reset
.git reset file2
-
Verstecke die Datei
Jetzt werden wir
file2
mit Hilfe des Befehlsgit stash
stashen, um es in den aktuellen Commit-Stadium im aktuellen Repository zurückzubringen.git stash --keep-index
Die andere Methode, mit der wir nur eine Datei stashen können, ist die Ausführung des folgenden Befehls.
git stash save -p "commit message"
Mit Hilfe der obigen Methode können wir auswählen, welcher Block dem Stash hinzugefügt werden soll. Außerdem können wir, wenn wir an einer Datei gearbeitet haben, die Änderungen speichern, bevor wir sie festschreiben, sodass die Übergabe mit unserer Arbeitsdatei erfolgt.
Der Befehl speichert die Änderungen, die unserem Index hinzugefügt wurden (staged changes) und Änderungen, die an Dateien vorgenommen wurden, die derzeit von Git verfolgt werden (unstaged change).
Stashing ist eine Möglichkeit, einen Schnappschuss des aktuellen Zustands unserer Arbeitskopie zu machen, den Schnappschuss zu speichern und dann zu einem sauberen Zustand der Arbeitskopie zurückzukehren.
Sobald wir die Änderungen zum Index hinzugefügt haben, können wir sie festschreiben. Wenn wir die Änderungen im Arbeitsverzeichnis, aber nicht den Index speichern möchten, verwenden Sie die Option --keep-index
. Gespeicherte Änderungen können jederzeit erneut angewendet werden.
Hinweis: Nachdem wir eine Datei gestasht haben, sollten wir sie in das Repository übertragen. Wir sollten es nicht vergessen.
Abdul is a software engineer with an architect background and a passion for full-stack web development with eight years of professional experience in analysis, design, development, implementation, performance tuning, and implementation of business applications.
LinkedIn