Angenommen, ich habe einige Änderungen mit einem der folgenden Befehle gespeichert:
%Vor%Ich kann eine einzelne Datei aus dem Versteck über
auschecken %Vor%Das funktioniert, wenn git "Dateiname" kennt, funktioniert aber nicht, wenn "Dateiname" nicht geparkt ist. Gibt es eine Möglichkeit, nicht verfolgte Dateien aus einem Versteck zu checken?
git stash
erstellt intern spezielle Zusammenführungs-Commits für Schwarzmagie, um verschiedene Teile Ihrer Änderungen zu speichern. Das Zusammenführungs-Commit hat das ursprüngliche Basis-Commit (das, was Sie am Anfang des Zweigs beim Verstecken hatten) als sein erstes Elternteil, ein Wegwerf-Commit, das den Indexinhalt zum Zeitpunkt des Versteckens als zweites Elternteil repräsentiert, und (nur wenn Sie% verwendet haben) co_de%) ein Wegwerf-Commit, das die nicht verfolgten Dateien als drittes Elternteil enthält.
Der Merge-Commit bezieht sich also auf die nicht abgefangenen Dateien (als einer seiner Eltern) ... aber er enthält diese Dateien nicht wirklich in seiner eigenen Baumstruktur (wenn das keinen Sinn ergibt, haben Sie entweder ein paar Sachen, die man noch über Git's Interna lernen sollte ... oder du weißt zu viel über Merge Commits und dieses ganze Konstrukt scheint einfach zu schrecklich um darüber nachzudenken;)).
Kurz gesagt: Um auf die nicht verfolgten Teile Ihres Stash zuzugreifen, greifen Sie auf seinen dritten Elternteil zu: --include-untracked
Ich habe einen Scratch-Zweig, mit dem ich experimentiere, aber im Allgemeinen nicht dazu verpflichte. Ich möchte ein paar ausgewählte Änderungen in meinen eigentlichen Zweigzweig einfügen.
Sorgen Sie in diesem Fall nicht dafür, die Änderungen zu speichern, um sie von einem Zweig in einen anderen zu verschieben. Tun Sie direkt ein git commit
, und verschieben Sie die Änderungen von dem Zweig, den Sie festgeschrieben haben, auf den anderen, indem Sie git cherry-pick verwenden : git cherry-pick #hash_of_the_commit
.
Tags und Links git