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
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
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
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 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