Kann ich eine laufende Zusammenführung git stashen?

Lesezeit: 2 Minuten

Ich bin gerade dabei, Konflikte für eine Git-Zusammenführung zu lösen, aber ich möchte vorübergehend zu einem sauberen Zustand zurückkehren, ohne die Arbeit zu verlieren, die ich bereits an der Zusammenführung geleistet habe. Wenn ich versuche, git stash, bekomme ich Fehlermeldungen für jede Datei, für die ein Konflikt noch nicht gelöst wurde: “needs merge”.

Gibt es eine gute Möglichkeit, die laufende Zusammenführung zu speichern? Die einzige Idee, die ich habe, ist, das Repo in einen anderen Ordner zu klonen, aber das scheint übertrieben zu sein.

  • Wenn Sie das Repository lokal klonen, wird zumindest auf Unix-Systemen keine separate Kopie des Repo-Verlaufs auf der Festplatte gespeichert. Wenn Sie also 10 GB Verlauf, aber 100 MB Dateien haben, verwenden Sie nur die zusätzlichen 100 MB.

    – Dietrich Ep

    8. Januar 2016 um 20:49 Uhr

  • Die laufende Zusammenführung wird im Index und im Arbeitsbaum gespeichert. Angesichts dessen git stash aus diesen beiden zwei Commits macht, würde man denken, dass es genau das Richtige wäre – außer dass der laufende Merge-Status nicht in einem Commit gespeichert werden kann: Er enthält Metadaten, die Git nicht in einen Baum schreiben wird. Der stash Das Skript könnte geändert werden, um den Inhalt der rohen Indexdatei in einem eigenen Blob zu speichern, aber das würde ziemlich schwierig werden. Ich würde nicht versuchen wollen, es heute Abend zu codieren. 🙂 Das erneute Klonen des Repos scheint die beste schnelle Methode zu sein.

    – Torek

    9. Januar 2016 um 6:24 Uhr

  • Klon gemacht dafür.

    – jthill

    9. Januar 2016 um 6:59 Uhr

Du könntest die verwenden git worktree Befehl, um einen neuen Arbeitsbaum in einem anderen Ordner hinzuzufügen. Dies ist wie ein zweiter Index und Arbeitsbaum, verwendet jedoch dasselbe Git-Repo. man git-worktree:

   Manage multiple working trees attached to the same repository.

   A git repository can support multiple working trees, allowing you to check out
   more than one branch at a time. With git worktree add a new working tree is
   associated with the repository. This new working tree is called a "linked working
   tree" as opposed to the "main working tree" prepared by "git init" or "git clone".
   A repository has one main working tree (if it’s not a bare repository) and zero or
   more linked working trees.

  • Anwendungsbeispiel in der Git-Dokumentation.

    – Qsteuer

    27. Oktober 2020 um 9:54 Uhr

  • Könnte gut sein zu bemerken, dass Sie Ihre werfen würden sauber Verzweigen Sie in den neuen Arbeitsbaum, nicht in den, an dem Sie gerade arbeiten.

    – Darau

    11. Juli 2021 um 13:51 Uhr

1445390cookie-checkKann ich eine laufende Zusammenführung git stashen?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy