Verstauen eine Datei in Git

Abdul Jabbar 6 Februar 2022
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 Befehls git reset.

    git reset file2
    
  • Verstecke die Datei

    Jetzt werden wir file2 mit Hilfe des Befehls git 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 Jabbar avatar Abdul Jabbar avatar

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

Verwandter Artikel - Git Stash