Lösen Sie Git-Stash-Konflikte ohne Commit

John Wachira 15 Februar 2024
Lösen Sie Git-Stash-Konflikte ohne Commit

Dieser Artikel beschreibt die Schritte, die Sie befolgen sollten, um Git-Stash-Konflikte zu lösen, ohne Commits zurückzusetzen oder zu erstellen. Um den Kontext zu vereinfachen, simulieren wir eine Situation, in der unser Befehl git stash pop zu einem Konflikt führt, und versuchen, den Konflikt zu lösen, ohne die Datei zum Commit hinzuzufügen.

Lösen Sie Git-Stash-Konflikte ohne Commit

Auf VSCode öffnen wir unsere Datei README.md, speichern, fügen am Ende eine Zeile hinzu und speichern die Änderungen.

$ git stash
Saved working directory and index state WIP on Dev2.1: 8b5cc6c Zesr

Als nächstes fügen wir eine weitere Zeile am Ende unserer README.md-Datei hinzu, speichern und übernehmen die Änderungen.

Jetzt können wir den Befehl git stash pop ausführen.

$ git stash pop

git stash pop

Führen Sie die folgenden Schritte aus, um dies zu beheben, ohne die Datei zum Festschreiben hinzuzufügen.

Der erste Schritt besteht darin, die Zusammenführungskonflikte zu lösen. Git hat ein Standard mergetool, aber wir bevorzugen Meld.

Wenn Sie Meld verwenden möchten, stellen Sie sicher, dass es als Standard-Merge und difftool konfiguriert ist.

Wir führen den folgenden Befehl aus, um Meld zu starten und die Konflikte manuell zu lösen.

$ git mergetool

Nachdem wir uns mit den Zusammenführungskonflikten befasst haben, überprüfen wir schnell den Status unseres Arbeitsbaums.

$ git status

git status

Wie in der obigen Ausgabe zu sehen ist, hat Git die Datei zum Commit bereitgestellt. Wir müssen den empfohlenen Befehl ausführen, um die Bereitstellung der Datei aufzuheben.

$ git restore --staged README.md

Lassen Sie uns unseren Arbeitsbaum überprüfen.

$ git status

git restore –staged

Denken Sie daran, dass Git den Stash nach dem Zusammenführen nicht automatisch löscht. Sie müssen es fallen lassen, indem Sie Folgendes ausführen:

$ git stash drop

Zusammenfassend haben wir zwei Möglichkeiten, einen Git-Konflikt als gelöst zu markieren. Wir können die Befehle git add oder git restore --staged verwenden.

Letzteres löst den Konflikt und entfernt die Datei aus dem Index.

John Wachira avatar John Wachira avatar

John is a Git and PowerShell geek. He uses his expertise in the version control system to help businesses manage their source code. According to him, Shell scripting is the number one choice for automating the management of systems.

LinkedIn

Verwandter Artikel - Git Stash